Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разработка алгоритма логики к игре 
:(
    Опции темы
Isaev
  Дата 26.5.2013, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 8.11.2007
Где: Germany

Репутация: нет
Всего: нет



Есть поле на котором действуют 2 правила:
user posted image
тут 3 варианта, но в сущности первый и третий это одно и то же, просто для наглядности
Т.е. коротко:
- Начинать можно с любой позиции поля, где на пути имеется хоть одна цифра
- Ход может быть только в горизонтальном или вертикальном направлении
- Ход возможен только до упора(пока цифра не встретилась, остановиться нельзя), при встрече с цифрой она сдвигается на 1 клетку и уменьшается на единицу(если больше единицы) или исчезает(если была единица)...
- И дальше можно менять направление.
- Если при сдвиге цифры сдвигаются на соседние, то они складываются
- Выход сдвиг цифры за пределы поля не возможен(заложено в алгоритме генерации)... Это в общем не нужно, т.к. не встретится, но на всякий случай.

Вот пример поля
user posted image
Начинать можно с любого места, цель - убрать все цифры с поля.

Главный вопрос:
Можно ли свести решение этой задачу к какому-либо стандартному алго? Или может к графу?
Скорее всего да, но я никак не придумаю к какому.
Для просто брута уже это поле требует достаточно времени. Я реализовал, это конечно можно долгое время оптимизировать по скорости, но это изначально тупиковый вариант думаю, т.к. 
Видел программу, которая решает за секунды и это особенно захватывает, при чём относительно большие поля, а не этот простой пример!
Значит можно! Осталось только продумать логику.

Моя программа решает этот пример грубым перебором за 2ч 40мин. Не оптимизирована совсем, просто набросал и понял, что надо явно искать другой путь, т.к. результаты по сравнению с примером решения не соизмеримые... Думаю пару часов срезать можно, если сделать со связными списками например, но даже 40мин и пара секунд это бешеная разница! 
если поле немного увеличивается, то программа не находит решения и за сутки. smile 

Я начал с того, что ограничил все возможные начала работы алгоритма, отрезав все дубли по возможности.
Примерно следующим образом:
user posted image
Это конечно не идеальный вариант, можно ещё несколько точек объединить, но не в этом суть сейчас.
Это дало огромный результат конечно, но думаю в итоге это должно не глупым брутом, а как-то изящнее решаться.

Кто может навести на путь истинный? Как правильнее подойти к решению.


Это сообщение отредактировал(а) Isaev - 26.5.2013, 05:29
PM MAIL ICQ   Вверх
maxim1000
Дата 26.5.2013, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



игра прикольная

один из вариантов:
- понапридумывать эвристик для оценки хода
- выписать все возможные варианты первого хода
- для того, у которого оценка наилучшая просмотреть все варианты второго и добавить их в общий котёл
- повторить

в таком случае вся сложность сводится к выбору эвристик

но вообще, такие варианты на тот случай, если ничего нормального не придумается...


--------------------
qqq
PM WWW   Вверх
Isaev
Дата 26.5.2013, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 8.11.2007
Где: Germany

Репутация: нет
Всего: нет



maxim1000, эвристика да, поможет максимально быстро выйди к нужному началу скажем так... 
А с самим алго решения как быть? снова брут?
скажем так, у второго хода, учитывая, что их макс 4, эвристику мы уже не высчитаем, т.к. пока не дойдём до тупика ситуацию сложно оценить

Это сообщение отредактировал(а) Isaev - 26.5.2013, 20:31
PM MAIL ICQ   Вверх
Akina
Дата 26.5.2013, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Чем-то напоминает игру Voracity... 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxim1000
Дата 26.5.2013, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(Isaev @  26.5.2013,  20:29 Найти цитируемый пост)
т.к. пока не дойдём до тупика ситуацию сложно оценить

если пытаться оченить точно - сложно
а можно попробовать простые правила и посмотреть, что получается

например "меньше заполненных клеточек", "больше заполненных клеточек", "меньше сумма чисел", "меньший разброс по полю"

Добавлено через 34 секунды
хотя гадание всё это, к сожалению

нормального ничего в голову не приходит


--------------------
qqq
PM WWW   Вверх
soflot
Дата 10.6.2013, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



а можно "правила" описать текстом? а то я не понял...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Isaev
Дата 20.2.2015, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 8.11.2007
Где: Germany

Репутация: нет
Всего: нет



Цитата(soflot @  10.6.2013,  00:25 Найти цитируемый пост)
а можно "правила" описать текстом? а то я не понял...

В первом посте под первой картинкой описаны текстом правила
PM MAIL ICQ   Вверх
Akina
Дата 20.2.2015, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Isaev @  20.2.2015,  13:23 Найти цитируемый пост)
В первом посте под первой картинкой описаны текстом правила 

Не указано, что произойдёт, если "черепаха" достигнет края поля (точнее, в выбранном направлении движения нет полей с цислами).

Цитата(Isaev @  26.5.2013,  06:15 Найти цитируемый пост)
Выход сдвиг цифры за пределы поля не возможен(заложено в алгоритме генерации)... 

Более простой вариант - неограниченное поле.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0709 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.