Pull to refresh

Comments 24

Мне понравилось, попробовать точно стоит.
У меня то ли глаз замылился, то ли мой вариант правильным не считается.

10*10
image
Спасибо за наводку! Правило про одинаковые строки, я почему-то спроецировал только на соседние, 5 и 8 сравнить не догадался.
вижу минимум 2 вертикальных одинаковых ряда, 3-й и 5-й слева
По ощущениям — как подгонка верстки под стандарт W3C.
Сначала все расставляешь, а потом начинаешь исправлять указанные косяки. Просто, скучно, не интересно.
Пойду дальше убивать часы в 2048.
Интересно задачу решить аналитически для поля NxN. Или алгоритм подбора написать.
По ощущениям — как решать судоку на Easy/Medium, есть несколько очень простых механических правил, которые последовательно применяешь к каждой строке и столбцу, пока поле не заполнится.
1. Если в строке/столбце из 2N ячеек присутствует N ячеек одного цвета, закрасить все оставшиеся в противоположный цвет (должно быть поровну синих и красных)
2. Если в строке/столбце есть 2 ячейки подряд одного цвета, соседние ячейки нужно покрасить в противоположный цвет (нельзя три в ряд)
3. Если в строке/столбце есть 2 ячейки одного цвета с дыркой между ними, дырку нужно покрасить в противоположный цвет (нельзя три в ряд)
4. Если в строке/столбце есть ровно две дырки, а заполненные ячейки в точности совпадают с ячейками полностью заполненной строки, то дырки заполняются инвертированными значениями (строки должны быть разными)
5) когда ни одно из правил не работает — покрасить любую клетку в любой цвет и запомнить координаты. Потом снова применять правила 1-5. Когда упрётесь в тупик — откатиться до этой клетки и поменять её цвет.
Всё это верно, но на поле 10×10 одного механического заполнения клеток уже недостаточно :)
Если добавить ещё несколько правил, то чаще всего достаточно:
— Если у нас есть конструкция R?? B, то среди неизвестных клеток ровно одна синяя и одна красная;
— В ситуациях R?? и? R? неизвестные клетки не могут быть красными одновременно;
— Если в строке/столбце больше двух неизвестных клеток, среди которых ровно одна красная, а известные клетки совпадают с соответствующими клетками другой строки/столбца, то неизвестная клетка, соответствующая красной клетке этой другой строки/столбца, должна быть синей.
Всё верно, но на то это и логическая игра, чтобы находить такие моменты и заполнять поле в соответствии с тем, что вы нашли. Это уже не совсем механические действия :)
Если «находить моменты» значит пополнять список ситуаций, то да. Но если удалось найти достаточный набор, то игра становится такой же «логической», как кубик Рубика, который собирается строго по алгоритму — всего лишь распознавание паттернов и быстрота реакции, а логика совсем ни при чём.
Ну почему же? На поле 10×10 приходится заглядывать довольно далеко, потому что одними паттернами здесь уже не обойтись. После их применения остаётся довольно много возможностей для того, чтобы сделать неправильные ходы, которые заставят откатиться назад :)
Последние примерно 20 игр мне не потребовалось ни одного «заглядывания вперёд». Правил было достаточно, чтобы открыть хотя бы одну клетку — а потом ещё одну… Если вам (в реальной игре) встретится ситуация, где паттернов не хватает — выложите, пожалуйста.
Хорошо, если буду ещё играть и увижу, выложу. Но я вчера наигрался и больше не собираюсь пока :)
Там есть кнопка подсказки, и она работает в любой момент игры, указывая место одним из правил.

Суть — возможность хода есть всегда
Вот какая ситуация у меня получилась на поле 8х8:
Картинка
По-моему, тут 2 равнозначных варианта.
В одном из этих вариантов совпадут 3 и 5-я строки, думаю если нажать на глаз — это и покажет
Вы были совершенно правы. Даже при игре на поле 10×10 всегда есть возможность сделать оговоренный правилами «ход».
Sign up to leave a comment.

Articles