| eXeL@B —› Вопросы новичков —› Решение игры типа сапера.Интересная. Для умных) | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 06 марта 2010 20:10  · Личное сообщение · #1 Всем привет! Я, к сожалению, крэком не занимаюсь,но случайно на вашем форуме нашел пост, что есть люди, интересующиеся написанием программ для решения логических задач. Собственно, есть ли у кого какие мысли, как можно решить следующую задачу? Задача- симбиоз змейки и сапера)) Дано поле с ячейками. вы находитесь в центре поля, вас окружают 8 ячеек. В каждой ячейке есть цифра.Щелкая на любую из ячеек, вы продвигаетесь на кол-во клеток,равное числу в ячейке, в выбранном направлении.Там вас опять окружают 8 ячеек. Задача пройти по всему полю, не врезаясь в себя и не вылетая за границы поля. Если идти по диагонали, то потом себя можно перепрыгнуть в определенных местах. Ребята, очень надо решить задачу. За актуальную помощь готов даже вознаградить=)) Скрин поля прикреплю, могу выложить и саму игру. Спасибо, если дочитали до сюда. p.s.: модерам. извините, если запостил не той ветке. ![]()  | 
| 
 | 
Создано: 06 марта 2010 20:25  · Личное сообщение · #2  | 
| 
 | 
Создано: 06 марта 2010 20:25  · Личное сообщение · #3  | 
| 
 | 
Создано: 06 марта 2010 20:26  · Личное сообщение · #4  | 
| 
 | 
Создано: 06 марта 2010 23:01  · Личное сообщение · #5  | 
| 
 | 
Создано: 06 марта 2010 23:10  · Личное сообщение · #6  | 
| 
 | 
Создано: 06 марта 2010 23:28  · Личное сообщение · #7 Coderess пишет: Сапер уже много кто пробовал решить, использовалось внедрение в память процесса и все методы, которые мне попадались были с исходными кодами это не сапер...внедрения в память не надо, т.к. тут решать надо чисто через комбинаторику..ну это как я вижу..хотя я в таких вопросах не особо разбираюсь. Archer пишет: В принципе можно читать память процесса, считывать всё поле. Ползти в любое рандомное направление. Если застрял, откатывать на шаг назад и идти в другое рандомное. Типа брута поля. да, я так и думаю. но опять же, ПОЛЕ СТАТИЧНО(!!), т.е. оно не меняется от раза к разу. а очень ли сложно будет выполнить то, что вы описали? если есть 8 направлений в каждой точке, а длина перемещения может варьироваться от 1 до 12 клеток. Вот сама игра: wc3acc.narod.ru/game.swf ![]()  | 
| 
 | 
Создано: 09 марта 2010 21:49  · Личное сообщение · #8  | 
| 
 | 
Создано: 09 марта 2010 23:42  · Личное сообщение · #9 что возможно заполнить всё поле где сказано? игра на очки и не обязательно что поле возможно заполнить, если это не учтено алгоритмом генерации Брут сделать можно, насколько реально будет время выполнения сложно оценить, но думаю нормально главное заинтересовать программиста, а если бы было чем, думаю цена бы светилась уже в первом посте ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]()  | 
| 
 | 
Создано: 12 марта 2010 10:57  · Личное сообщение · #10  | 
| 
 | 
Создано: 12 марта 2010 16:18  · Личное сообщение · #11  | 
| 
 | 
Создано: 13 марта 2010 13:30  · Личное сообщение · #12 3047 очков! Кто больше? ![]() Получено с помощью нижеприлогаемой программы (алго на базе рекурсии). Пилит варианты очень долго, до конца не дождался. Так что это вероятно далеко не максимум.   f450_13.03.2010_CRACKLAB.rU.tgz - Saper.rar
----- 127.0.0.1, sweet 127.0.0.1 ![]()  | 
| 
 | 
Создано: 13 марта 2010 22:27 · Поправил: OKOB  · Личное сообщение · #13 Версия с полным логом поиска. SaperFullLog.exe > Log.txt !!! Осторожно скорость формирования лог файла 1,5 гига в минуту Формат лога: Level 003( 23, 4) -> NORD ; VALID; SUCCESS (2) ####### Level 004( 23, 2) -> NORD ; VALID; DON'T SUCCESS (11) Level 003 - номер хода (уровень вложенности рекурсии) ( 23, 4) - координаты текущей базовой точки NORD... - направление хода VALID/ DON'T VALID - статус возможности хода в данном направлении SUCCESS / DON'T SUCCESS - результат хода (2) - длина текущего хода   c3f8_13.03.2010_CRACKLAB.rU.tgz - SaperFullLog.exe
----- 127.0.0.1, sweet 127.0.0.1 ![]()  | 
| 
 | 
Создано: 14 марта 2010 00:17  · Личное сообщение · #14  | 
| 
 | 
Создано: 14 марта 2010 01:25 · Поправил: OKOB  · Личное сообщение · #15 Isaev пишет: лучший вариант рекорда то был наёден? Лучше вариант есть. На скрине вариант на 139 ходов и 539 поинтов, следующий который находится 135 ходов на 543 поинта, но из-за буферизации виндой вывода в логфайл до нахождения следующего возможного рекорда в нем (логе) видны не все ходы. А так времени жалко. Вариантов слишком много при 139-ти ходах и 8-ми направлениях это 8**139 = 3,3846065602060728266338063771278e+125 вариантов. Так что максимум локальный, а поиск глобального мало реален. Видно что со стартовой точки направление СЕВЕР (т.е. первое из восьми) (перебор направлений от СЕВЕРА по часовой стрелке). PS: Заставил программу при нахождении максимума на 543 поинта вытолкнуть лог. Вот результат ходов. Видно что оптимизируется укладка только ближе к голове "змеики", а хвосты совпадают полностью. Так что поле для улучшения результата есть. ![]() PSS: Ручками-глазками немного уплотнил в начале. ![]() А вообще топ не имеет отношения к реверсу, да и исчерпал себя ибо задача поставленая топикстартером решена - алго реализовано. Топ полноправный кандидат на закрытие. ----- 127.0.0.1, sweet 127.0.0.1 ![]()  | 
| 
 | 
Создано: 14 марта 2010 04:25  · Личное сообщение · #16  | 
| 
 | 
Создано: 14 марта 2010 12:19  · Личное сообщение · #17 Вариантов слишком много при 139-ти ходах и 8-ми направлениях это 8**139 = 3,3846065602060728266338063771278e+125 вариантов И что там для 139 ходов мало отсекается? Да и направлений всего 7 Писать лог кстати сильно замедляет поиск. Даю идею. Строим матрицу NxN, где N - число полей. В ячейке (i,j) очки/расстояние (лень условие перечитывать). Далее делается хитрое умножение(складываем содержимое ячеек) на транспонированную матрицу и получаем оценку "двухходовок". И т.д и т.п. Матрицы придется хранить, но это меньше чем лог и можно придумать экономную запись. Если в ячейки писать больше инфы, то можно сразу отловить запрещенные пути. Уже охота прогу написать, но пока лень. ![]()  | 
| 
 | 
Создано: 14 марта 2010 13:50 · Поправил: OKOB  · Личное сообщение · #18  | 
| 
 | 
Создано: 15 марта 2010 01:29  · Личное сообщение · #19  | 
| 
 | 
Создано: 15 марта 2010 01:42  · Личное сообщение · #20  | 
| 
 | 
Создано: 15 марта 2010 03:09  · Личное сообщение · #21  | 
| 
 | 
Создано: 15 марта 2010 11:35  · Личное сообщение · #22  | 
| eXeL@B —› Вопросы новичков —› Решение игры типа сапера.Интересная. Для умных) | 











 




 Для печати