Разработка и ромхакинг > Разработка игр

[SMD] ИИ-эксперимент с Русскими шашками

<< < (2/2)

Dyons:

--- Цитата: Vlad666 от 18 Июнь 2026, 07:31:42 ---Чисто ради интереса.

--- Конец цитаты ---
Я ж тебе предложил ради интереса вариант, дерзай  :biggrin:

Vlad666:
1. Добавил третий режим игры 2-MOVES (Двухходовка). ИИ понимает его правила и рассчитывает ходы с учетом особенности этого режима.
2. Добавил индикацию обязательного взятия, если игрок по какой-то причине его проигнорировал, пытаясь сделать другой ход. Шашки противника мигают красным цветом.
3. Добавил индикацию допустимых ходов, если игрок пытается нарушить правило перемещения шашек. В этом случае клетки, на которые игроку разрешено сделать ход, мигают красной рамкой.
4. Работу со многими графическими элементами переложил на DMA, а так же добавил кратковременное отключение экрана во время загрузок большого количества тайлов (например, между переходом с титульного экрана на экран игры), дабы не было видно графических артефактов.

Потом добавлю, может быть, еще какие-нибудь режимы и попробую сделать ИИ быстрее или умнее. И на этом, наверное, все. А стиль переделывать не буду. Мне этот нравится. Он минималистичный. Подобные логические игры не должны быть захламлены всякими яркими деталями. Хотя, чуть-чуть подправить дизайн шашек не помешало бы.



Добавлено позже:
Кстати, еще добавлю сохранение выбранных параметров игры в SRAM, чтобы при перезапуске не приходилось каждый раз настраивать их заново.

ghostdog3:

--- Цитата: Vlad666 от 18 Июнь 2026, 11:02:43 ---А стиль переделывать не буду. Мне этот нравится. Он минималистичный. Подобные логические игры не должны быть захламлены всякими яркими деталями. Хотя, чуть-чуть подправить дизайн шашек не помешало бы.
--- Конец цитаты ---
Доска и интерфейс вполне хорошие, именно внешний вид шашек желательно улучшить.

Ну и было бы славно, если бы уровни трудности были более понятны рядовому пользователю.

Если будет желание, можно ещё поэкспериментировать, чтобы программа на той же доске 8*8 могла играть, скажем, в другие виды шашек, где правила немного отличаются. Те же английские, бразильские или итальянские.

Vlad666:
Финальная версия (скорее всего).

Что нового:

- Параметры игры сохраняются в SRAM. Теперь не нужно каждый раз настраивать игру на свой привычный лад.
- Изменил дизайн шашек и изменил обозначение дамок. Смотрите скрин.
- Ускорил алгоритмы ИИ. В подробности вдаваться не буду, но скорость при DS 6 и QS 12 (максимальные значения) увеличилась примерно:

С 13 секунд до 11
С 32 до 26
С 50 до 42

Это примеры времени разных ходов разной сложности.

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



Имена параметров DEEPTH SEARCH и QUIESCENCE SEARCH менять не стал, т.к. считаю их фишкой этой игры. Создается впечатление, будто ты играешь в профессиональную версию Русских шашек. А если кто не понял суть этих параметров, то вот понятное объяснение:

Оба этих параметра настраивают "мозги" компьютерного противника (ИИ) и то, как он принимает решения.

DEPTH SEARCH (Глубина поиска)

Этот параметр определяет, на сколько ходов вперед ИИ просчитывает развитие партии.

Как это работает: ИИ перебирает все возможные варианты развития событий. Базовое значение в игре равно 5. Это значит, что компьютер мысленно разыгрывает партию на 5 шагов вперед для каждого своего возможного действия, чтобы выбрать самое выгодное.

На что влияет:
- Чем выше цифра (в меню доступно до 6), тем умнее, хитрее и опаснее будет компьютерный противник. Однако при высоких значениях процессору нужно больше времени на вычисления, поэтому компьютер будет дольше "думать" перед каждым ходом.
- Чем ниже цифра (минимум 3), тем быстрее ходит компьютер, но при этом он становится менее дальновидным и может совершать больше тактических ошибок.

QUIESCENCE SEARCH (Поиск до стабилизации / Дополнительный просчет)

Это специальный защитный механизм, который может спасти компьютер от обидных поражений во время серийных взятий (рубок).

Как это работает: Представьте, что компьютер просчитал свои 5 ходов (согласно DEPTH SEARCH) и остановился. Но что, если прямо за границей этого 5-го хода игрок подготовил ловушку и готов срубить сразу три шашки? Чтобы ИИ не был "слепым" к таким угрозам, включается QUIESCENCE SEARCH. Этот алгоритм заставляет компьютер продолжить просчет ходов сверх лимита, но рассматривает только те ходы, где происходит рубка. Компьютер будет проверять варианты до тех пор, пока ситуация на доске не станет "спокойной" (никто никого не может срубить).

На что влияет: Этот параметр позволяет задать максимальную глубину такого дополнительного поиска (базовое значение - 12).

- Если значение высокое, компьютер реже будет попадаться на длинную цепочку рубок.
- Если параметр отключить (значение 0 / OFF), ИИ станет уязвимым для многоходовых комбинаций и красивых ловушек игрока.

Данный параметр так же, как и DEEPTH SEARCH, влияет на скорость ИИ.

Также не стал добавлять дополнительные режимы игры. Пробежался по интернету и поболтал с нейронкой об этом. Существует множество дополнительных режимов, но все они - какая-то дичь. Поэтому трех имеющихся режимов будет вполне достаточно.

Можно добавить английские шашки. Но раз я назвал свою игру RUCHECKERS, то также не вижу смысла добавлять этот вариант. Может быть, потом сделаю именно английские шашки со своими дополнительными режимами. Затем обе версии можно будет объединить в сборник.

Vlad666:
Думал, что все, но пришлось сделать еще одно срочное обновление.

- Сделал внешнюю обводку шашек черной, чтобы шашки не сливались с фоном.
- Внес одно изменение в ИИ, чтобы он не тупил со своими дамками в режиме REVERSE. Теперь он еще умнее.



В архиве так же отправляю исходный код движка ИИ. Если у кого появится идея создать свой вариант Русских шашек, но лень париться с ИИ или нет в этом деле достаточных знаний, то можете взять этот.

ghostdog3:
Vlad666, спасибо! Поставил себе в очередь на поиграть.  :thumbup:

Vlad666:
Пока делал эту игрушку, в разделе Homebrew появился Extris. Это предыдущая моя игрушка, созданная совместно с нейросетью.

Качать тут https://www.emu-land.net/consoles/genesis/roms/extris.

Если кому понравилась, но нашли баги или недочеты, пишите мне в ЛС. Постараюсь исправить, доработать и опубликовать следующую ревизию.

Сразу предупреждаю, что вариант этого Тетриса на любителя. Поэтому, если, например, не понравился стиль, то исправлять его не буду. Он таким и был задуман. Но могу, например, подправить скорость падения фигур.

Dyons:

--- Цитата: Vlad666 от 20 Июнь 2026, 07:06:47 ---Пока делал эту игрушку, в разделе Homebrew появился Extris. Это предыдущая моя игрушка, созданная совместно с нейросетью.

Качать тут https://www.emu-land.net/consoles/genesis/roms/extris.

--- Конец цитаты ---
По ссылке опечатка, настоящий разработчик ИИ  :P

Vlad666:

--- Цитата: Dyons от 20 Июнь 2026, 07:18:31 ---По ссылке опечатка, настоящий разработчик ИИ  :P

--- Конец цитаты ---

Это уже не я писал. А тот, кто написал, знал, что код игры написан нейросетью. Но идея то моя и управление нейросетью мое. Сигэру Миямото своего Марио тоже создавал не в качестве программиста :biggrin:.

Dyons:

--- Цитата: Vlad666 от 20 Июнь 2026, 07:22:13 --- Сигэру Миямото своего Марио тоже создавал не в качестве программиста .
--- Конец цитаты ---
Ну так если ты не в курсе в играх всегда перечисляют в титрах всех причастных и указывают должность  :biggrin:

Vlad666:
Дело было вечером, делать было нечего, и я решил сделать еще одно обновление, добавив четвертый режим игры - 2-MIXED (ставропольские шашки). Как и в режиме 2-MOVES, человек и компьютер за раз делают два хода, но разница в том, что в 2-MIXED второй ход делается шашкой противника.

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

Vlad666:
Обновил код графики. Теперь, когда игрок двигает шашки, он не увидит графических артефактов в виде полосок из черных пикселей на игровой доске, появляющиеся на долю секунды.

Точно не скажу, но, похоже, графика в игре стала идеальной в плане отсутствия артефактов.

Кстати, нейронка исправила проблемы с графикой, когда она узнала, что я использую эмулятор BlastEm. Я ей о нем вообще не говорил, но она поняла это из скрина, который я ей отправил. Она тут же выдала рабочее улучшение графики, написав код так, чтобы он отлично работал на оригинальном железе или на высокоточном эмуляторе. Это лишний раз показывает, что при составлении промтов нужно учитывать все, а не просто писать: "Напиши мне это". Чем точнее промт, тем качественнее результат.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии