Рубрика «сапёр»

[Пятничный перевод статьи 1999 года одного из авторов движка игры Thief Шона Барретта]

Неприятное положение в «Сапёре»

В этом положении я знаю, что вокруг меня есть куча мин, но не могу определить, где они находятся. Несколько мин может быть в одном из двух мест (розовые или голубые), группа мин может быть расположена в одной из двух комбинаций (светло-/тёмно-зелёные). Кроме того, есть ещё сложная ситуация с «5» и «6» в левом верхнем углу, которую я никак не выделил.

Продвинутая тактика игры в «Сапёр» - 1

Голубые/розовые — взаимоисключающие пары, светло-/тёмно-зелёные — взаимоисключающие группы

«Сапёр»: логика или вероятность

В «Сапёра» можно играть двумя способами: как в логическую или в вероятностную игру.

Технически, вероятность подразумевает логику. Если вы можете логически доказать, что мина должна находиться в определённом месте, то вероятность равна 100%. Если можете доказать, что её в этом месте нет, то вероятность равна 0%. То есть в каком-то смысле для нас важны только вероятности. Тем не менее, игрок для распознавания таких стопроцентных ситуаций игрок использует логическую дедукцию. Иногда, особенно на низких уровнях сложности, её достаточно для прохождения уровня, никакого подсчёта вероятностей не требуется.

Но бывают такие ситуации, когда вся логика мира не может вас спасти. Простой пример — ситуация с «T», которую видно внизу по центру. Она немного осложняется дополнительными соседними минами. (В простейшем случае «2» заменяется на «1», а «5» — на «3», чтобы ситуация была симметричной.)
Читать полностью »

image

Здравствуйте, уважаемые читатели. Искренне надеюсь, что среди читателей Хабра найдутся любители такой замечательной игры как «Сапёр».

Если верно помню, то впервые эта игра появилась на операционной системе Windows 3.1 ещё в далеком 1994-ом году. В то время эта игра позиционировалась как средство для обучения использованию компьютерной мыши и в целом графическому интерфейсу ОС. Выглядела она примерно так:

image

Принцип игры согласно Wikipedia

Плоское или объёмное игровое поле разделено на смежные ячейки (квадраты, шестиугольники, кубы и т. п.), некоторые из которых «заминированы»; количество «заминированных» ячеек известно. Целью игры является открытие всех ячеек, не содержащих мины.
Игрок открывает ячейки, стараясь не открыть ячейку с миной. Открыв ячейку с миной, он проигрывает. Мины расставляются после первого хода, поэтому проиграть на первом же ходу невозможно. Если под открытой ячейкой мины нет, то в ней появляется число, показывающее, сколько ячеек, соседствующих с только что открытой, «заминировано» (в каждом варианте игры соседство определяется по-своему); используя эти числа, игрок пытается рассчитать расположение мин, однако иногда даже в середине и в конце игры некоторые ячейки всё же приходится открывать наугад. Если под соседними ячейками тоже нет мин, то открывается некоторая «не заминированная» область до ячеек, в которых есть цифры. «Заминированные» ячейки игрок может пометить, чтобы случайно не открыть их. Открыв все «не заминированные» ячейки, игрок выигрывает.

Однако, время идет, популярность сапера падает, и хочется внести новую жизнь и краски в эту игру. Именно так и родилась мультиплеерная версия игры, именованная как "Russian Minesweeper", которая представляет собой браузерную онлайн игру. Заинтересовавшихся прошу под кат.
Читать полностью »

День добрый. Почти каждый начинающий программист стремится к созданию своей первой игры. Спустя пол года ленивого кропотливого обучения я решился написать сапера. Языком написания был выбран Python, модулем для добавления интерфейса tkinter, потому как уже имелся опыт работы с ним. Этот пост будет полезен скорее начинающим кодерам, но если вы итак все знаете, можете написать свои советы по улучшению кода в комменты.
Читать полностью »

image

Дебаты о том, заменят ли роботы людей на определенных рабочих местах, не новы. Исследование, проведенное научно-исследовательским институтом Nomura, представляющий собой японский аналитический центр, и Оксфордским университетом, показало, что в период от 10 до 20 следующих лет почти на половине рабочих мест в Японии человек может быть замещен роботами и искусственным интеллектом.
Читать полностью »

В чём истинное предназначение «Косынки» и «Сапёра» - 1

Пасьянс «Косынка», «Свободная ячейка» и «Сапёр» — популярные игры, которые входят в базовый комплект Windows. Это довольно простые, но увлекательные игры: некоторые люди готовы часами играть, не отрываясь.

Хотя игры увлекательные, но мало кто знает, с какой целью их разработали.
Читать полностью »

Играем в сапера в фотошопе - 1

По роду своей деятельности мне периодически приходится автоматизировать свою работу в фотошопе. Точнее я мог бы этого не делать, но природная лень не оставляет шансов в борьбе с рутиной, как говориться «лучше час потерять, зато потом за 5 минут долететь». Все бы наверное так и оставалось на уровне отдельных разрозненных скриптов если бы не пост от enotus. Благодаря ему я узнал, что к фотошопу (как впрочем и другим продуктам от Adobe) можно писать расширения на HTML+JS. И пошло, поехало.

Как-то так сложилось, что изучение всего нового я обычно начинаю с написания простенькой игрушки на этом самом новом. Для фотошопа я выбрал Сапера. В этом примере я бы хотел рассказать о создании интерфейса расширения, взаимодействии с фотошопом и обработкой событий. Так что кому все еще интересно, прошу подкат.
Читать полностью »

На Хабрахабре есть уже немало хороших статей по хаскелю, но, к сожалению, это по большей части всяческие введения в ФП, разъяснения каких-то теоретических штук (вроде монад, лямбда-исчисления или семейств типов) и совсем немного практических примеров. Ни в коем случае не умаляя их полезности, попробую всё-таки сместить дисбаланс, внести свою лепту в неблагодарное дело популяризации функциональщины и ещё раз показать, что язык пригоден не только для написания факториалов и неэффективных быстрых сортировок в две строчки, но и для вполне практичных вещей вроде быстрого прототипирования.

Статья постарается быть относительно real-world, но при этом не утомлять читателя объёмом или экзотическими предметными областями. «Графика и игры в обучении — это всегда sexy», как завещал великий В. С. Луговский, поэтому я набросаю простую игру, всенародно любимый «Сапёр». Разработка будет вестись «сверху вниз» — это малораспространённая, но заслуживающая пристального внимания (как и сам хаскель) методология, про которую я когда-то давно прочитал в отличной статье о шашках в «Практике функционального программирования», и с тех пор она запала мне в душу.Читать полностью »

На хабре стали выкладывать небольшие приложения на JavaScript в 30 строк, и я тоже решил попробовать, и написал всем известную игру сапер. Если вам еще не надоела эта тема, то прошу под кат.
Читать полностью »

Изометрический сапёр на LibCanvas (html5)
Этот топик будет отличаться от предыдущего топика Классический сапёр на html5 и LibCanvas. Его даже, скорее, можно назвать продолжением. И первая часть содержала пошаговую и детальную инструкцию, как заставить работать игрушку, то в этой части будет пару интересных приёмов, как её «оказуалить».

Играть в изометрический «Сапёр»


Если вы новичёк в этом деле, то стоит начинать с первой части. Для тех, кто хочет углублятся я рассмотрю следующие темы на примере изометрического сапёра, построеного на базе LibCanvas:

  • Изометрическая проекция
  • Оптимизация скорости отрисовки через грязный хак
  • Спрайтовые анимации
  • Draggable слои
  • Оптимизация обработчика мыши согласно особенностей приложения

Читать полностью »