Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > xo(крестики нолики)


Автор: roma 1.12.2002, 01:07
Я написал прогу крестики нолики и не знаю как толком сделать ,что бы компьютер принимал правильное решение.

Автор: HexoGenus 1.12.2002, 01:34
Цитата(Guest @ 30.11.2002, 17:07)
Я написал прогу крестики нолики и не знаю как толком сделать ,что бы компьютер принимал правильное решение.

Какое нафиг решение...
там вариантов раз - два и обчелся...
во-первых после первого хода компьютер должен делать что то вроде поворота игрового поля в своей памяти (но не на экране) так что-бы первый значок оказывался на левой вертикали, конечно кроме случая когда игра начинается с центральной клетки... (это сократит количество прорабатываемых вариантов в несколько раз - так же можно использовать например зеркальную симметрию...)
А потом просто делаешь перебор всех вариантов ходов (машина многократно играет сама с собой) записывая все выигрышные ходы и ходы позволяющие свести на ничью...
Потом собираются те ходы после которых наступает ситуация неминуемого выигрыша (вилка) и ситуации после которых меньше проигрышных вариантов (вдруг игрок не заметит единственный выгодный для него вариант) потом уже должна выполняться игра с пользователями с попыткой выбора различных равнозначных по ценности вариантов ходов для проведения статистики по каждому пользователю на каких ходах он чаще зевает и идет в ложном направлении (так как очень мало вариантов... то человек будет очень быстро приходить к однотипному способу нападения и защиты что лишает программу возможности отбора хороших вариантов)
Если ты действительно правильно выполнишь и преобразование поворота и симметрии то ты поразишься потом насколько мало в этой игре вариантов ходов.... это я тебе как математик по образованию говорю...
:D

Автор: December 1.12.2002, 07:54
А если не ограничивать поле 3х3 рамкой? Сколько будет вариантов для, например, 10 ходов?

Автор: Baa 1.12.2002, 09:01
Кстати, есть какие-нить гениальные мысли по поводу крестиков ноликов? за последнее время много разных перебрал вариантов... даже 3д.. но все лажа какая-то...посему пока занят разработкой архитектуры геймбокса, куда сие крестики нолики (и другие игры такого масштаба) будут входить.

Автор: podval 3.12.2002, 06:35
Вот гениальная мысль: вместо крестиков-ноликов сделать рэндзю.

Автор: МММ 3.12.2002, 12:16
Ну у кого есть алгоритм?
Я когда был маленький , видел в одном журнале , каца Радио назывался, игру крестики нолики для 8 битного компа , на ассемблере, так там маленький код (не из за того что был использован асм), было обьеснено математически, безпроигрышный алгоритм кстати. Значит есть где то, но где .....

Автор: Baa 5.12.2002, 19:55
Цитата(podval @ 02.12.2002, 22:35)
Вот гениальная мысль: вместо крестиков-ноликов сделать рэндзю.

Эт че за зверь такой?

Автор: podval 5.12.2002, 20:10
Цитата(Baa @ 05.12.2002, 11:55)
Цитата(podval @ 02.12.2002, 22:35)
Вот гениальная мысль: вместо крестиков-ноликов сделать рэндзю.

Эт че за зверь такой?

Мы в школе играли так: на большом тетрадном листе ставим крестики и нолики. Выигрывает тот, кто первым зачеркнет пять своих фигур, расположенных подряд по вертикали, горизонтали или диагонали. Своего рода усложненный вариант крестиков-ноликов.

Автор: podval 14.4.2004, 20:50
Это сверху "летает" вопрос или победный клич?

Автор: kadyrov_azizbek 24.3.2005, 09:20
Я тут прогу написал на QBasic-е, так она вроде работает, выигрывает, только если первая ходит. Играет на поле 20х20. Вообще если все заранее обдумать smile , можно такую прогу за несколько часов написать. Сейчас мне что интересно - так это шашки... smile

Автор: boevik 24.3.2005, 09:28
Используй алгоритм Min-Max.
Довльно таки простой в реализации и дает не плохие результаты для таких игр.

Автор: ~FoX~ 24.3.2005, 10:16
http://www.gazeta.ru/techzone/2003/12/04_a_69635.shtml?print

Автор: podval 24.3.2005, 14:28
Перенесено из раздела "Алгоритмы"

Автор: Guest 29.3.2005, 08:57
Цитата(boevik @ 24.3.2005, 09:28)
Используй алгоритм Min-Max.
Довльно таки простой в реализации и дает не плохие результаты для таких игр.

Спасибо за совет! У меня уже кое сто получается... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)