Как найти выход из безвыходной ситуации: советы психолога
Время на чтение 20 минут
Содержание
- Что такое безысходность
- Что нужно знать о безысходности
- Из-за чего возникает безысходность
- Как найти выход и преодолеть безысходность
- 1. Используйте личный дневник
- 2. Составьте план действий
- 3. Измените ситуацию
- 4. Измените свое отношение к безвыходной ситуации
- 5. Вообще ничего не меняйте
- 6. Опробуйте на себе тренинг Problem Solving
Здравствуйте, друзья. С вами психолог Елена Елизарова. Спасибо, что читаете мой блог.
С большинством из нас в жизни случались ситуации, которые казались нам безвыходными. Люди по-разному реагируют на них: кто-то пожимает плечами, быстро находит решение и идет дальше, а кто-то переживает настолько сильно, что впадает в глубокую депрессию.
Порой нужно просто принять другое решение, чтобы найти выход
В шахматной партии такие ситуации называют патовыми (от французского pat, итальянского patta — игра вничью). Это такое положение фигур на доске, при котором игрок, имеющий право сделать ход, не может им воспользоваться.
Так и в жизни многие впадают в ступор — кажется, что все входы и выходы из ситуации заблокированы. Они испытывают безысходность и ощущение, что помощи ждать неоткуда. Но так ли это на самом деле?
Сегодня поговорим о том, откуда берется чувство отчаяния, мешающее найти правильное решение проблемы, как его преодолеть и найти выход из, казалось бы, безвыходной ситуации.
Что такое безысходность
Ощущение безысходности возникает, когда человек попадает в критические ситуации. При этом подобные моменты каждый оценивает в силу своих эмоциональных, психических и аналитических способностей. Для кого-то кризис — это проблемы на работе. Для другого это лишь временная неприятность, а настоящее горе его разбивает при смерти близкого человека.
Порой человек теряет веру и надежду в благоприятный исход и не видит смысла предпринимать дальнейшие действия.
Но есть и еще одно мнение: чувство безысходности — это своеобразный защитный механизм защиты нервной системы от перегруженности. Ощущая отчаяние, человек способен на самые безрассудные поступки, в том числе на причинение вреда себе или окружающим, которых он сочтет виноватыми. А значит, чувство безысходности как бы замораживает его на время, давая возможность мозгу самостоятельно проанализировать ситуацию и найти правильный выход из нее.
Дайте себе возможность отдохнуть — и выдохнуть
Само по себе чувство безысходности не существует, это не какой-то реальный предмет. Но оно наступает, когда человек эмоционально загоняет себя в угол. То есть виновным в этом состоянии является сам индивид: он опускает руки, теряет веру в себя и в свои силы, отсекает любые варианты возможных решений проблемы.
Что нужно знать о безысходности
- Существуют базовые эмоции, которые человек испытывает в первые дни и месяцы жизни и которые позволяют ему выжить. К ним относятся страх, удовольствие, агрессия, любовь, радость и отвращение. Безысходность не входит в их число.
- Человек самостоятельно может избавиться от чувства отчаяния, если начнет анализировать ситуацию, пытаться с оптимизмом смотреть в будущее.
- Безысходность может послужить отправной точкой для того, чтобы изменить свое мировоззрение и ценности, восприятие действительности.
- Безысходность на всех действует по-разному. Человек либо меняет свои ценности и цели в жизни, либо заходит в тупик. Во втором случае, чтобы уйти от гнетущей реальности, он может погрузиться в аддиктивное состояние (наркоманию, алкоголизм) или, что самое худшее, совершить суицид.
- Организм реагирует на затянувшуюся безысходность психосоматическими проявлениями — чувством постоянной усталости, бессонницей или ночными кошмарами, тремором, понижением иммунитета, простудными и другими заболеваниями.
Чтобы преодолеть безысходность, крайне важно иметь внутренние опоры и умение осознать еще на первом этапе, что вами начинает овладевать отчаяние. В противном случае состояние будет все больше усугубляться, проявляясь и на соматическом уровне.
А еще давайте вспомним о том, что беда никогда не приходит одна. И вот эта черная полоса в жизни, в которой возникают одновременно сразу несколько безвыходных ситуаций, усугубляет чувство отчаяния именно из-за многочисленности проявлений, их совокупности.
Из-за чего возникает безысходность
Кажется, здесь все очевидно: безысходность — следствие безвыходной ситуации. Но давайте попробуем копнуть глубже.
Что происходит с человеком в безвыходной ситуации? Он оказывается неспособен справиться с обстоятельствами и чувствами. На него давят разные страхи:
- он не сможет найти выход из ситуации;
- ему никто не поможет;
- ситуация станет еще сложнее;
- именно он виноват в случившемся;
- произойдет еще что-то, чего он уже не сможет пережить.
На фоне этих страхов человек не способен оценить ситуацию критически, его захлестывают эмоции. Неважно, что произошло: он просрочил платеж по кредиту, его бросила девушка. Некоторые сильно переживают лишь из-за того, что получили негативные комментарии к своим постам в соцсетях.
Человек испытывает страх — и его захлестывают эмоции
Казалось бы, что может быть безвыходного? С банком можно договориться или заплатить чуть большую сумму, можно найти себе другую вторую половинку (пусть и не сразу). Но человек накручивает себя, его разыгравшаяся фантазия играет с ним плохую шутку: он выдумывает то, что в реальности не существует. И вот в его голове прокручиваются страшные сценарии: квартиру отберут в счет погашения долга, его никто не любит, и он всегда будет одинок. Причем чем дольше человек находится в состоянии угнетенности, тем этот сценарий становится драматичнее.
Как найти выход и преодолеть безысходность
Все знают избитое выражение: безвыходных ситуаций не бывает. Только вот эта прописная истина работает до тех пор, пока вы сами не попадаете в подобную ситуацию.
Для начала следует взглянуть на происходящее со стороны. Лучше всего это сделать с помощью другого человека — поговорить о своих проблемах с тем, кому вы доверяете (близким другом, родственником, кем-то, кто уже побывал в подобных ситуациях). Ваш собеседник поможет вам оценить, насколько ваши обстоятельства действительно драматичны, поддержит вас морально, а может, даже подскажет, как все исправить с минимальными потерями.
Если вам не с кем поделиться, если вы испытываете чувство вины и стыда и не хотите рассказывать о ситуации — есть и другие способы исправить неисправимое.
1. Используйте личный дневник
Если нет дневника — заведите его или выпишите в обычную тетрадь то, что вас тревожит. Придерживайтесь при этом правил:
- Описывайте все происходящее в мельчайших подробностях.
- Осознайте, что вас на самом деле тревожит. К примеру, если не дали премию — вам обидно, что рухнули ваши планы на какие-то покупки, или вы считаете, что начальник вас недооценивает? А может, вы давно уже хотели бы поменять работу, но боитесь, что никуда не возьмут?
- Попробуйте несколько снизить значимость события. Подумайте, настолько ли ужасно произошедшее, как вы себе представляете? Настолько ли ужасным оно было бы для вас, если бы случилось с вашим коллегой?
- Спросите себя, чего вы боитесь на самом деле. А потом задумайтесь о том, что в 99 % случаев страхи не сбываются.
- Напишите возможные положительные выходы из ситуации. Пофантазируйте, как ваша проблема могла бы быть решена.
2. Составьте план действий
Зачастую проблемы погребают человека под собой как лавина. Только что все было хорошо, и вдруг вы заболели, а на работе горят дедлайны. А тут еще и сестра в другом городе сломала ногу, ей нужно купить лекарства и нанять сиделку. А скоро еще и платеж по ипотеке…
Множество проблем усугубляют безвыходную ситуацию
И вам надо решить все эти проблемы, деваться некуда. Но решить их все одновременно не получится, это просто нереально. Составьте список своих неотложных дел, пронумеровав их в порядке значимости. Допустим:
- Занять деньги на лекарства, вылечиться, потому что с больным горлом, сильным кашлем и температурой вы вряд ли вообще будете на что-то способны;
- Сделать и сдать работу;
- Оплатить ипотеку.
И так далее. Главное — не отступать от намеченного плана. Выполняя один пункт, на время выбросьте из головы мысли о других. Это сложно, проблемы давят, но список постепенно будет сокращаться. И это будет рождать в вас оптимизм, эйфорию и силы для новых свершений.
3. Измените ситуацию
Абстрагироваться от ситуации, когда эмоции зашкаливают и выхода из проблем не предвидится, очень сложно. Но попытаться стоит. Это уже потом, если вы вдруг снова наступите на те же грабли, то сможете отнестись к произошедшему проще, решить проблемы быстрее. Но сейчас вам необходимо взять себя в руки и не закрываться в себе, а взглянуть «врагу» в лицо.
Не нужно менять что-то кардинально, достаточно просто сделать шаг. Так вы хотя бы проясните ситуацию вместо того, чтобы бесконечно надумывать. Не можете вовремя оплатить кредит — позвоните в банк, попробуйте договориться об отсрочке. Даже один шаг — однозначно лучше, чем бесконечно рыдать в подушку.
4. Измените свое отношение к безвыходной ситуации
Найдите в происходящем что-то позитивное. Жизнь не делится только на черное и белое, всегда есть промежуточные варианты. Попробуйте выписать на листок несколько хороших последствий ситуации. Пусть незначительных, но позитивных. К примеру, «Я просрочил оплату кредита, ЗАТО купил продукты», «Я просрочил оплату кредита, ЗАТО оплатил услуги ЖКХ», «Я просрочил оплату кредита, ЗАТО я жив и здоров, а долги перед банком — вообще не главное в жизни».
5. Вообще ничего не меняйте
На фоне прежних советов этот кажется парадоксальным. Но поверьте, он тоже работает. Если вы не знаете, что делать, дайте себе время. Пустите ситуацию на самотек. Порой от нас и правда ничего не зависит. А вот действуя импульсивно, под воздействием эмоций, все можно только усугубить.
Просто отдохните, забудьте, что у вас проблемы
Иногда чудеса все же случаются: в вашей жизни может появиться человек, который подскажет, как правильно действовать. Или решение придет к вам само — этакое озарение. От эмоционального оно отличается холодным расчетом. Мозг самостоятельно обрабатывает информацию и раскладывает все по полочкам. Когда вам придет та самая спасительная мысль, вы это почувствуете. Например: «Нужно написать другу детства», «Я могу просто забыть про это, как про печальное недоразумение — со всеми случается», «Я так больше не могу, я хочу жить и быть счастливым».
6. Опробуйте на себе тренинг Problem Solving
Тренинг Problem Solving работает для выхода из любой безвыходной ситуации. Это комплексный подход к решению проблем, в основе которых — отказ от них.
Как это работает:
- Определите источник проблем — ту ситуацию, из-за которой они возникли. К примеру, вы устроились на работу, но на вашу зарплату не прожить. Вы ощущаете из-за этого тревогу, недовольство, сомнение в стабильном будущем.
- Выпишите цели и истоки конфликта, делающие эту ситуацию проблематичной. В данном примере: цель — сохранить работу, истоки — неуверенность, что вас возьмут на другую.
- Составьте список альтернативного поведения в этой ситуации. Попробовать найти другую работу, получить образование онлайн, сменить сферу деятельности.
- Оцените найденные альтернативы по шкале от 1 до 10, исходя из степени их эффективности. Попробовать найти новую работу по той же специальности — 3 из 10. Получить образование онлайн — 6 из 10. Сменить сферу деятельности — 5 из 10.
- Определите конкретные действия, чтобы реализовать самое эффективное альтернативное поведение.
Все способы, описанные выше, могут помочь найти выход из безвыходной ситуации. Но лишь в том случае, если вы не запутались окончательно и не впали в депрессию. Если вы осознаете, что не можете избавиться от чувства безысходности самостоятельно, запишитесь на прием к психологу. Иначе ситуация может длиться годами и разрушать вашу жизнь и жизнь ваших близких.
Безвыходных ситуаций не бывает, бывают непринятые решения. Порой мы не принимаем их, потому что боимся лишиться чего-то ценного. Но на самом деле это может быть началом новой жизни. Иногда лучше отпустить прошлое, чтобы получить желаемое.
Сложные ситуацию бывают у всех и всегда. Это может касаться и личных отношений, и работы, и финансов. Но стоит помнить, что патовые случаи, угрожающие жизни и здоровью – все-таки редкость.
Основа любого выхода – переключение внимания.
Запутавшись в проблеме, мы перестаем замечать возможные пути ее решения. А выход есть, и не один.
Что же сделать, чтобы найти выход из действительного сложного положения?
1.Не унывать. Но! Сказать это легко, а осуществить сложно. Поэтому, стоит поддерживать себя маленькими позитивными вещами в течение дня. Любимая музыка, хобби, утренняя пробежка или другой спорт, разговор с человеком, который всегда поддержит, лакомство любимым блюдом и т.д.
2.Подумать, как бы поступили в вашей ситуации ваши друзья или авторитетные для вас люди (или, например, известные блогеры, актеры, политики)? Дайте самому себе совет, так как бы вы дали его своему другу, оказавшемуся в аналогичной истории.
3.Устроить мозговой штурм. Выпишите все свои чувства и эмоции, связанные со сложной ситуацией. Когда она возникла, почему? Кто и что делал? Что было потом? Реакции окружающих? Набросайте несколько вариантов выхода, даже если они кажутся совсем неприемлемыми и невозможными. Иногда проблема находится в одной плоскости, а ее решение – в другой.
Подумайте, какой из выходов самый верный и принесет меньше потерь. Ориентируйтесь интуитивно на самый близкий для вас путь.
4.Поговорите с другим человеком о своей проблеме. С тем, кому вы можете ее доверить. С другом, приятелем, авторитетным и поддерживающим вас человеком, коучем или психологом. Возможно, решение найдется за минуту, просто вы в силу зацикленности на проблеме, не могли увидеть его. А человек со стороны сразу понял, в чем дело.
5.Самое главное – переключите внимание, возьмите тайм-аут. На свежую голову и думается легче. Мысленная жвачка, сфокусированная на проблеме, не дает найти правильное решение. Поэтому этот пункт самый важный.
Если есть возможность, съездите в путешествие. Займитесь новым делом или найдите увлечение всей своей жизни.
Подумайте, сколько в мире людей живут на “грани”. Может быть есть тот, кому нужна ваша помощь?
Регулярно делайте “приятности для себя”. Отмечайте свои даже самые маленькие успехи, лучше всего в этом помогает дневник благодарности, о котором мы уже писали здесь.
А еще предлагаем вам поразмыслить на следующим:
- Вы и вправду попали в тупик, или, на самом деле, смирились и не хотите искать выход из сложной ситуации?
- Возможно выход есть и вы даже знаете какой, просто он вас не устраивает?
- Возможно вы попали в ситуацию вымученной беспомощности. Когда все кажется безнадежным и смирились с этим?
- Подумайте, насколько актуальна эта проблема для вас будет через 5,10,15 лет? Помните, что немного в этой жизни бывает важным надолго.
Удачи, дорогие подписчики и читатели канала!
______________________________________________________________________________
Если вам понравилась статья – ставьте лайк и подписывайтесь на наш канал.
Другие интересные публикации на тему:
ЛУЧШИЕ КНИГИ НА ПУТИ К МИЛЛИОНУ
ГДЕ МЫСЛИ – ТАМ И ТЫ
5 СПОСОБОВ НЕЗАМЕТНО ПОПАСТЬ В ДОЛГИ
В обыденных хлопотах и заботах редко кто задумывается о своей защищенности. Как правило, мы начинаем «креститься» и «подстилать соломку», когда гром уже грянул, когда отступать приходится не на заранее подготовленные позиции, а в неизвестность, в никуда. Часто начинает казаться, что в пропасть.
В известной песне есть слова «…любовь нечаянно нагрянет, и каждый вечер сразу станет удивительно хорош». А если беда нечаянно нагрянет? Солнце меркнет, земля уходит из-под ног, и кажется, что никто и ничто не спасет, не поможет, не придет на помощь.
В своем несчастье человек становится уязвимым, и неприятности начинают буквально «прилипать» к нему. «Беда не приходит одна», — говорят в таких случаях. Два исконно русских вопроса встают перед растерянным человеком и начинают его терзать: «Что делать?» и «Кто виноват?» Вернее, даже наоборот: «Кто виноват?» И только потом: «Что делать?» Большинство из нас все-таки начинает анализ ситуации с поиска виновного в своем несчастье, а не с каких-либо конструктивных размышлений и шагов.
Так вот, первое правило, которому научила меня жизнь, — не ищи виноватых, прости всех, кого хочешь обвинить, и себя в первую очередь. Силы пригодятся для поиска, для борьбы, для выхода из ситуации, для восстановления.
Конечно, можно обвинить весь белый свет, забиться в угол и ждать, когда ситуация рассосется сама по себе. Так поступают все дети. Они никогда не пытаются решить встающие перед ними проблемы, а стараются «забыть» их, отложить в своем сознании на задворки в ожидании благополучного исхода, волшебника в голубом вертолете или чуда.
Ничего хорошего из такой позиции не вытекает. Поэтому-то родители и должны формировать доверительные отношения с детьми, чтобы всегда быть в курсе их проблем и вовремя приходить на помощь, показывая пути выхода из затруднительных ситуаций. А вовсе не для принятия мер в виде наказаний и прочих санкций.
Итак, возьмите себя в руки. Соберитесь. Займитесь анализом «безвыходной ситуации». Зовите на помощь всех, кого можете. И не думайте, что ваши проблемы безразличны близким вам людям. Они вас любят и будут помогать и советом, и конкретным делом. Очень важно, чтобы рядом был человек, на которого можно опереться. Но это случается не всегда.
«Просите, и дано будет вам» — помните? Просите не только близких, друзей, знакомых. В первую очередь, просите и молите о помощи Господа и своих высших покровителей. Найдите свой храм, если у вас его еще нет. Обойдите при возможности все, которые есть поблизости, и где-то вам захочется остаться.
А может быть, просто найдете свое место около наиболее близкой вашей душе иконы в единственном около вашего дома храме. Это место обязательно есть, и душа подскажет, отзовется на него. Главное — идите и просите.
Просите прощения, помощи, заступничества, покровительства. Читайте молитвы (или аффирмации, если вы атеист) вместо того, чтобы углубляться в невеселые думы или предаваться унынию. Другими словами, контролируйте свои мысли. Не можете думать о чем-то продуктивном — читайте молитвы, и постепенно сознание прояснится и в голову придут нужные решения, идеи, предположения, надежды.
Научитесь расслабляться и эмоционально, и физически. Займитесь медитацией. Достигнуть расслабления можно разными способами.
Можно концентрировать внимание:
- во-первых, на своем дыхании;
- во-вторых, на расслаблении своего тела (сначала выполняется напряжение всех мышц, а затем расслабление, делается это постепенно, начиная со ступней и заканчивая мышцами шеи и лица.);
- в-третьих, на каком-либо зрительном образе или звуке (это может быть образ морских волн, которые набегают на берег, или пение какого-то звука «оомм», «ааа»; в книге Робина Шармы «Монах, который продал свой Феррари» есть описание техники «Любование розой»).
При желании и нынешних возможностях Интернета таких техник можно подобрать несколько — какая будет по душе больше других, на той и остановитесь. Йога очень хорошо помогает, независимо от того, занимаетесь вы дома или в специализированном клубе. Подберите для себя несколько упражнений и выполняйте их под приятную музыку. А еще бывают записи для релаксации со звуками природы: лес, море.
А еще вода. Обыкновенная вода. Вернее, водные процедуры. Различные ванны — расслабляющие, успокаивающие, морские, хвойные, с ароматическими маслами и т. д. Сауна или парная. Настоящий праздник для тела принесет облегчение и вашей душе. Бассейн. Плаваете себе, как рыба, и через мышечную нагрузку нервы и мысли приходят в порядок. Обливания. Душ.
Прогулки. Если есть компаньон, он же собеседник, — хорошо. Если вдруг такого не окажется — ничего страшного, идите гулять в одиночестве. Только желательно темп движения выбирать средний или быстрый, в зависимости от вашей тренированности, и возвращаться с небольшой физической усталостью. Замечательно, если ваш маршрут будет проходить по берегу реки, парку, тихим несуетливым улицам.
Очень хорошо воздействует на наше психическое состояние уход за садом, растениями: посадка, пересадка, прополка и всякие прочие хлопоты. Откройте свои книги-каталоги-атласы по цветоводству, полистайте их, полюбуйтесь на красоту природы.
Еще один метод отвлечь свои мысли от сложной и неприятной ситуации — это просмотр любимых фильмов, чтение книг, которые когда-то доставили большое удовольствие.
Если у вас давно копились проблемы со здоровьем, а заняться ими не было возможности — сейчас самое время. Начните курс профилактического лечения своего остеохондроза, гастрита, мигрени. Даже если нет обострения. А оно часто случается в стрессовых ситуациях при наличии хронических заболеваний, и тогда лечение тем более нельзя откладывать.
Есть еще один хороший способ борьбы со стрессом, который сопровождает сложные жизненные обстоятельства, он прекрасно зарекомендовал себя, особенно среди женщин, но и мужчинам должен помочь: шопинг. Другими словами — походите по магазинам, найдите то, о чем давно мечтали (уникальный крючок для вязания или рыбной ловли), или купите себе подарок спонтанно.
Вот понравилось что-то прямо сейчас — покупайте и радуйтесь. Серьги с бриллиантами, серебряное колечко, красивое платье, галстук, машину или… игрушку. Порадуйте себя. А если совсем никаких желаний не возникает — то порадуйте близкого, ребенка, любого человека.
Исполните мечту нематериального плана. Давно мечтали прыгнуть с парашютом, покататься на речном трамвайчике, пройти босиком по воде, сказать соседу доброе слово, посадить дерево, выбросить надоевший сервиз, постоять на голове, выучить мелодию для фортепиано с оркестром, завести котенка или щенка, съездить в Париж или в деревню? Действуйте.
Главное — не зациклиться на проблеме, не уходить в нее с головой, а реализовать возможность привести в порядок свои мысли и чувства, начать анализировать и предпринимать разумные шаги к разрешению ситуации или к осознанию необходимости существования в новых обстоятельствах.
И вот во время молитв, медитаций, прогулок, занятий плаванием, садом, во время просмотра фильмов ваше сознание постепенно выведет вас на нужный путь. Ранее неблагоприятные обстоятельства повернутся другой стороной, начнут происходить радостные и необходимые для вас события. В вашей жизни начнутся перемены к лучшему, появятся новые возможности и шансы на успех.
С Божьей помощью, при участии близких людей и собственном спокойном и позитивном настрое вам откроется Дверь, о которой некоторое время назад вы и не подозревали.
И будет эта Дверь не только Выходом из сложной жизненной ситуации, но и Входом в новую, прекрасную, огромную и счастливую Жизнь.
Попадание в конфликт для каждого человека стресс, при этом поведение участников может быть совершенно разным. Кто-то настаивает на своем, другие стараются помалкивать, третьи ищут компромиссное решение и т.д. Чтобы понять, как лучше действовать при выяснении отношений, необходимо знать алгоритм выхода из конфликтной ситуации и приемы, с помощью которых можно уладить разногласия.
Содержание
- Что провоцирует конфликт и как найти пути выхода?
- От чего зависит успех выхода из конфликтной ситуации и конфликта?
- Способы выхода из конфликтных ситуаций
- Эффективные психологические приемы выхода из конфликтных ситуаций
Что провоцирует конфликт и как найти пути выхода?
Противоречия возникают абсолютно в любых отношениях, причем как в семье, так и на работе, в транспорте и т.д. Сценарий их развития почти идентичен. Под воздействием того или иного фактора-триггера человек (или группа людей) начинает высказывать свои претензии другу, родственнику или просто прохожему, тот отвечает, и в итоге начинаются разборки. Примечательно, что часто люди совершенно не помнят, из-за чего все собственно началось. Это связано с тем, что истинная причина конфликта, как правило, скрыта, но именно она подталкивает к провокациям и выражению недовольства.
Преимущественно выход из конфликтной ситуации приходится искать из-за:
- неоправданных надежд и ожиданий;
- нарушения личного пространства;
- различия в интересах и целях;
- подсознательной неприязни;
- случайностей и недоразумений;
- непризнания чужих заслуг;
- неудовлетворенности потребностей;
- физического или психоэмоционального насилия;
- бытовых вопросов;
- нежелания понять чувства другого.
Есть примеры, когда люди, которые годами нормально общались, вдруг ссорятся из-за ерунды, а потом оказывается, что они давно друг друга ненавидят за какой-то поступок в молодости. Определить первопричину – первый шаг на пути разрешения проблемы.
От чего зависит успех выхода из конфликтной ситуации и конфликта?
Существует несколько факторов, способных повлиять на урегулирование разногласий:
- Вид конфликта – скрытый, ложный или явный.
- Обстоятельства, при которых люди выражают свое мнение. Человек по-разному ведет себя дома, в окружении родственников и посторонних, поэтому, если речь идет о семейных разногласиях, разумнее все обсудить «без лишних ушей».
- Особенности характера и темперамента участников. Важно уметь сдерживать агрессивные порывы и адекватно воспринимать ситуацию.
- Готовность выслушать вторую сторону и принять её мнение.
- Суть проблемы – чем серьезней претензии, тем сложнее подобрать стратегию выхода из конфликтной ситуации.
- Стереотипность поведения – мы копируем те модели поведения, которые были приняты в семье родителей, поэтому если у человека дома били посуду по поводу и без, велика вероятность того, что он так же будет проявлять свои эмоции в собственном браке.
Способы выхода из конфликтных ситуаций
Во время конфликта вы можете:
- согласиться с доводами оппонента ради сохранения отношений в целом (подходит, если предмет противостояния не столь ценен для вас);
- при помощи различных аргументов или психологического воздействия отстаивать собственное мнение;
- частично уступить и получить ответную уступку;
- избежать контакта и обсуждения предмета спора;
- найти способ удовлетворения потребностей обеих сторон.
Все виды выхода из конфликтных ситуаций имеют плюсы и минусы, и только вам решать, на каком из них остановиться. Только помните, что если оставить проблему нерешенной, то в будущем разногласия станут еще более серьезными и справиться с ними будет гораздо тяжелее.
Эффективные психологические приемы выхода из конфликтных ситуаций
Чувствовать себя увереннее во время столкновений можно, следуя таким достаточно простым правилам:
- избегайте повышения голоса – общайтесь спокойно, поскольку крики провоцируют ответную агрессию;
- обсуждайте конкретный вопрос – часто люди в запале ссоры переходят на обсуждение совершенно несвязанных тем (черт характера, прошлых отношений и т.д.);
- четко формулируйте свою позицию – так вы гораздо быстрее друг друга поймете и урегулируете конфликт;
- рассматривайте разные варианты разрешения проблемы – нужно мыслить широко, а не ограничиваться одним способом, иначе компромисса не достигнуть;
- задействуйте третью сторону, если нет никакого шанса разобраться самим;
- избегайте ссор на глазах детей, тем более на повышенных тонах;
- анализируйте свои действия и слова, чтобы потом о них не жалеть;
- если вопрос оказывается неразрешимым, то нужно принять такое положение дел и право другого человека на свое мнение.
Отметим, что методов, как найти выход из любой конфликтной ситуации, не существует, потому что у каждого конфликта своя предыстория, разные участники и обстоятельства «столкновения». Основное, что необходимо понимать – в ваших интересах попытаться успокоиться, трезво взглянуть на проблему и решить для себя, каких результатов вы хотите добиться от конкретного разговора.
Генерация и решение лабиринта с помощью метода поиска в глубину по графу
Время на прочтение
6 мин
Количество просмотров 110K
В этой статье речь пойдет о самом простом в реализации алгоритме генерации «идеального» лабиринта и его применении для поиска пути.
Мы рассмотрим алгоритм, основанный на бэктрекинге, позволяющий создавать лабиринты без циклов, имеющие единственный путь между двумя точками. Алгоритм не самый быстрый, довольно требователен к ресурсам, по сравнению с алгоритмом Эйлера или Крускала, но очень прост в реализации и позволяет создавать ветвистые лабиринты с очень длинными тупиковыми ответвлениями.
Заинтересовавшихся — прошу под кат.
В русскоязычном интернете очень мало информации по алгоритмам генерации лабиринтов, что и стало причиной для написания этой статьи.
Примеры кода на языке Си, а также полный исходный код проекта на GitHub доступны под лицензией GNU GPLv3.
Ссылки на англоязычные ресурсы и проект вы найдете в конце статьи.
Описание алгоритма
Замечание: предполагается, что изначально у каждой клетки есть стенки со всех четырех сторон, которые отделяют ее от соседних клеток.
1. Сделайте начальную клетку текущей и отметьте ее как посещенную.
2. Пока есть непосещенные клетки
1. Если текущая клетка имеет непосещенных «соседей»
1. Протолкните текущую клетку в стек
2. Выберите случайную клетку из соседних
3. Уберите стенку между текущей клеткой и выбранной
4. Сделайте выбранную клетку текущей и отметьте ее как посещенную.
2. Иначе если стек не пуст
1. Выдерните клетку из стека
2. Сделайте ее текущей
3. Иначе
1. Выберите случайную непосещенную клетку, сделайте ее текущей и отметьте как посещенную.
Вы, вероятно, заметили что при выполнении условия 3, готовый лабиринт вероятнее всего будет иметь изолированную область.
Это условие включено в алгоритм в порядке исключения, на практике при нормальной работе алгоритма и правильных исходных данных, оно не выполняется никогда.
Реализация
Как уже сказано выше, предполагается, что при начале работы алгоритма все клетки отделены стенками.
Иллюстрация работы алгоритма
0. < — Начальная матрица.
1. < — Выбираем начальную точку стартовой.
2.1. < — Перемещаемся к случайному непосещенному соседу, пока таковые есть.
2.2. < — Непосещенных соседей нет. Возвращаемся назад по стеку, пока нет непосещенных соседей.
2.1. < — Непосещенные соседи есть. Перемещаемся к случайному непосещенному соседу.
2. < — Нет непосещенных клеток. Лабиринт сгенерирован.
Программный код
Приступаем к самому интересному.
Начнем действовать по порядку и сначала сгенерируем начальную матрицу, с которой будет работать алгоритм.
Для удобства условимся, что все типы клеток заданы в перечислении.
int maze[height][width]; //создаем матрицу - двумерный массив
for(i = 0; i < height; i++){
for(j = 0; j < width; j++){
if((i % 2 != 0 && j % 2 != 0) && //если ячейка нечетная по x и y,
(i < height-1 && j < width-1)) //и при этом находится в пределах стен лабиринта
maze[i][j] = CELL; //то это КЛЕТКА
else maze[i][j] = WALL; //в остальных случаях это СТЕНА.
}
}
Теперь, когда все приготовления сделаны, можно приступать к генерации.
typedef struct cell{ //структура, хранящая координаты клетки в матрице
unsigned int x;
unsigned int y;
} cell;
typedef struct cellString{
cell* cells;
unsigned int size;
} cellString;
Структуры значительно упростят жизнь при обмене информацией между функциями.
Отрывок кода, отвечающий за генерацию:
cell startCell = {1, 1}
cell currentCell = startCell;
cell neighbourCell;
do{
cellString Neighbours = getNeighbours(width, height, maze, startPoint, 2);
if(Neighbours.size != 0){ //если у клетки есть непосещенные соседи
randNum = randomRange(0, Neighbours.size-1);
neighbourCell = cellStringNeighbours.cells[randNum]; //выбираем случайного соседа
push(d.startPoint); //заносим текущую точку в стек
maze = removeWall(currentCell, neighbourCell, maze); //убираем стену между текущей и сосендней точками
currentCell = neighbourCell; //делаем соседнюю точку текущей и отмечаем ее посещенной
maze = setMode(d.startPoint, d.maze, VISITED);
free(cellStringNeighbours.cells);
}
else if(stackSize > 0){ //если нет соседей, возвращаемся на предыдущую точку
startPoint = pop();
}
else{ //если нет соседей и точек в стеке, но не все точки посещены, выбираем случайную из непосещенных
cellString cellStringUnvisited = getUnvisitedCells(width, height, maze);
randNum = randomRange(0, cellStringUnvisited.size-1);
currentCell = cellStringUnvisited.cells[randNum];
free(cellStringUnvisited.cells);
}
while(unvisitedCount() > 0);
Как видно, реализация алгоритма проста и абстрактна от теории, как говорится, «справится даже ребенок».
Чтобы не перегружать статью, код функций, используемых в вышеприведенном отрывке, под спойлером.
Код функций
Функция getNeighbours возвращает массив непосещенных соседей клетки
cellString getNeighbours(unsigned int width, unsigned int height, int** maze, cell c){
unsigned int i;
unsigned int x = c.x;
unsigned int y = c.y;
cell up = {x, y - distance};
cell rt = {x + distance, y};
cell dw = {x, y + distance};
cell lt = {x - distance, y};
cell d[4] = {dw, rt, up, lt};
unsigned int size = 0;
cellString cells;
cells.cells = malloc(4 * sizeof(cell));
for(i = 0; i < 4; i++){ //для каждого направдения
if(d[i].x > 0 && d[i].x < width && d[i].y > 0 && d[i].y < height){ //если не выходит за границы лабиринта
unsigned int mazeCellCurrent = maze[d[i].y][d[i].x];
cell cellCurrent = d[i];
if(mazeCellCurrent != WALL && mazeCellCurrent != VISITED){ //и не посещенаявляется стеной
cells.cells[size] = cellCurrent; //записать в массив;
size++;
}
}
}
cells.size = size;
return cells;
Функция removeWall убирает стенку между двумя клетками:
mazeMatrix removeWall(cell first, cell second, int** maze){
short int xDiff = second.x - first.x;
short int yDiff = second.y - first.y;
short int addX, addY;
cell target;
addX = (xDiff != 0) ? (xDiff / abs(xDiff)) : 0;
addY = (yDiff != 0) ? (yDiff / abs(yDiff)) : 0;
target.x = first.x + addX; //координаты стенки
target.y = first.y + addY;
maze[target.y][target.x] = VISITED;
return maze;
}
Сначала вычисляется значение разности координат второй и первой точек. Очевидно, значение может быть либо отрицательное, либо положительное, либо 0.
Надо найти такие координаты xy, чтобы при сложении их с координатами первой точки получались координаты стенки.
Так как мы точно знаем, что вектор разности между координатами стенки и первой точке равен либо (|1|, 0) либо (0, |1|), мы можем этим воспользоваться.
Таким образом, аддитив для x координаты при xDiff != 0 будет равен xDiff / |xDiff|, при xDiff = 0, нулю. Для y соответственно.
Получив аддитивы для x и y, мы легко вычисляем координаты стенки между первой и второй клетками и назначаем клетку по этим координатам посещенной.
Итак, теперь у нас есть генератор лабиринтов, который может строить запутанные лабиринты, размер которых ограничен только размером оперативной памяти.
В итоге, мы можем получить что-то такое:
Лабиринты. Осторожно, трафик!
100×100
500×500
Генерация работает, теперь дело за малым: найти в таком лабиринте выход.
Алгоритмов поиска пути несколько больше, чем алгоритмов генерации, и некоторые из них, если будет интерес читателей, я освещу в следующих статьях, но пока что будем довольствоваться тем, что есть, и «пройдем» лабиринт тем же алгоритмом.
И все еще сильнее упрощается, так как нам больше не надо убирать стенки.
Алгоритм поиска пути бэктрекингом:
1. Сделайте начальную клетку текущей и отметьте ее как посещенную.
2. Пока не найден выход
1. Если текущая клетка имеет непосещенных «соседей»
1. Протолкните текущую клетку в стек
2. Выберите случайную клетку из соседних
3. Сделайте выбранную клетку текущей и отметьте ее как посещенную.
2. Иначе если стек не пуст
1. Выдерните клетку из стека
2. Сделайте ее текущей
3. Иначе выхода нет
Выходной точкой, как и стартовой, может выступать любая точка лабиринта, не являющаяся стенкой.
Традиционно, выход должен быть «прижат» к одной из стенок, но по сути может находиться где угодно.
Все таки, в данном случае, «вход» и «выход» — всего лишь две точки, между которыми надо найти путь.
Критерий нахождения «выхода» очень прост: достаточно сравнить координаты текущей точки и координаты «выхода»: если они равны, путь между стартовой и выходной точками найден.
Посмотрим что вышло:
Вот и все, что нужно для самой простой реализации генератора случайных лабиринтов.
Для тех, кто заинтересовался, полный исходный код проекта на GitHub: Maze Generator and Solver (offscreen rendering)
Внимание!
OSMesa не поддерживается некоторыми драйверами на unix-based, а на Windows не поддерживается совсем, так что желающим, кому не повезло с ОС/железом, могу предложить ознакомиться со смежным проектом: Maze Generator and Solver
В обоих проектах реализованы одни и те же алгоритмы, но первый рисует в памяти и выводит последовательность png-изображений, а второй на экране.
Сборка cd build && ../configure && make, если неудобно, в папке src есть файл-проект QtCreator’a.
Источники
1. Walter D. Pullen: Think Labyrinth.
2. Wikipedia: Maze generation algorithm.