Сапёр. Часть 3. Первые результаты.

Aug 11, 2013 22:00

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

Программирование

Leave a comment

Comments 8

valkiria_dan August 11 2013, 18:37:14 UTC
Может, стоит открывать не рамку, а случайное чистое поле? Ну, вроде как первый успешный ход, где методом тыка не угодил в мину?

Reply

stone_guest August 11 2013, 21:16:32 UTC
Спасибо, хороший способ. Но пока пошёл другим путём, вернулся к полю 16x16, но число мин увеличил вдвое - до 80. Первый раз сидел и разгадывал очень долго, но в итоге выиграл, дальше дважды подорвался. То ли устал, то ли такие сложные попадались расклады. Этому, наверное, можно найти объяснение. Когда мы сразу открываем рамку, мы уже легко и безошибочно расставляем контурные мины, и остаётся только расставить внутренние. Т.е. мин уже остаётся меньше, чем в случае без открывания рамки. Поэтому для усложнения игры их надо добавить.
Хотя у меня ещё одно предположение есть: похоже, что мой случайный бросатель мин работает не так, как он работает в читалке. Как будто бы в читалке конфигурации мин получаются не такие уж случайные.

Reply

valkiria_dan August 12 2013, 01:01:45 UTC
У меня в свое время папа сапером убивал время на работе. Так вот, в случае неоднозначной ситуации, когда надо рисковать, он точно угадывал мину. Говорил, что такие места повторяются один в один, и он просто помнил их. То есть, в виндовом сапере - точно не совсем случайные.

Reply

stone_guest September 22 2013, 11:32:50 UTC
Кстати, насчёт случайного чистого поля. Я тут предпринял поиски истории возникновения игры "Сапёр", точнее, почитал в википедии и походил оттуда по ссылкам. Оказывается, там и правда всё "умнее", чем я думал. В виндовом сапёре мины расставляются вроде бы заранее, но первый ход по определению должен быть успешным. Если игрок попадает в первый же ход в мину, мина "отскакивает" в позицию (0,0), если там уже была мина, то в (0,1) и т.д. Игрок, разумеется, об этом и не подозревает - это хакеры раскопали.
Наткнулся также на беседу любителей сапёра в форуме, где один пользователь пишет примерно такую фразу: "В 9-м классе делал и я сапёра, и делал так, чтобы мины расставлялись уже после первого хода игрока. Причём генерировал до тех пор, пока в выбранной ячейке не откроется большая область." Вот до чего доходили когда-то школьники!
Ещё в одном месте сказано, что в "классическом" сапёре мины должны расставляться после первого хода, при этом ячейка, открытая в первый ход, естественно, уже выбрасывается из списка ячеек, в которые могут попасть

Reply


anonymous August 14 2013, 16:48:46 UTC
Поди ж ты, сколько усилий было потрачено ради осознания двух очевидных фактов - принципиальной неслучайности расстановки мин и принципиального отсутствия интереса играть в игру, которую сам написал. Сто раз все это уже было пройдено многими людьми в благословенные 90-е. А там и книжки подоспели с теоретическим обоснованием оных фактов. Но чукча не читатель...

Reply

stone_guest August 14 2013, 17:23:15 UTC
Трудно удержаться от грубого мата, ибо анонимный комментатор переврал всё, что можно. Ни о каком подобном осознании я не писал! Но придётся теперь отвечать по пунктам:
1. Не так уж много усилий.
2. "Принципиальная неслучайность" -- вообще не понял, о чём.
3. Играть очень даже интересно, просто нужно подобрать плотность мин. При 70 минах на поле 14x14 выиграть очень трудно, при 60 -- сравнительно легко, но уже становится интересно.
4. Интерес - понятие субъективное, и книжки, обосновывающие "принципиальную" интересность или неинтересность чего-то меня совершенно не интересуют.

Reply


anonymous August 19 2013, 16:54:15 UTC
Грубый мат ни-ни!
Ну я просто подумал, что осознанию уже пора было прийти. Но оно, значит, не пришло. Ну и ладно.
Принципиальная неслучайность - это та, что возникла не из-за ошибок в программе или технических сбоев каких, а именно заранее заданная неслучайность. Причем закономерности в подобных играх настолько просты, что даже я начал врубаться где-то с десятого раза.
В книжках про сапера ничего нет. Там изложены общие положения, которые, обладая мозгом, можно применить к чему угодно, в том числе к саперу.
Предлагаю играть всем в бумажную версию сапера, где такие треугольные картоночки стоят, а на них сзади мины нарисованы. Это развивает моторику пальцев и экономит ресурсы литий-полимерных аккумуляторов. Йо!

Reply

stone_guest August 19 2013, 19:36:29 UTC
Да, как мы видим, два комментатора пишут о преднамеренной неслучайности, а автор всё ещё верит в то, что мины можно расставлять и случайно (просто потому, что это проще, чем хранить несколько заданных неслучайных конфигураций ( ... )

Reply


Leave a comment

Up