| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > xo(крестики нолики) |
| Автор: roma 1.12.2002, 01:07 |
| Я написал прогу крестики нолики и не знаю как толком сделать ,что бы компьютер принимал правильное решение. |
| Автор: HexoGenus 1.12.2002, 01:34 | ||
Какое нафиг решение... там вариантов раз - два и обчелся... во-первых после первого хода компьютер должен делать что то вроде поворота игрового поля в своей памяти (но не на экране) так что-бы первый значок оказывался на левой вертикали, конечно кроме случая когда игра начинается с центральной клетки... (это сократит количество прорабатываемых вариантов в несколько раз - так же можно использовать например зеркальную симметрию...) А потом просто делаешь перебор всех вариантов ходов (машина многократно играет сама с собой) записывая все выигрышные ходы и ходы позволяющие свести на ничью... Потом собираются те ходы после которых наступает ситуация неминуемого выигрыша (вилка) и ситуации после которых меньше проигрышных вариантов (вдруг игрок не заметит единственный выгодный для него вариант) потом уже должна выполняться игра с пользователями с попыткой выбора различных равнозначных по ценности вариантов ходов для проведения статистики по каждому пользователю на каких ходах он чаще зевает и идет в ложном направлении (так как очень мало вариантов... то человек будет очень быстро приходить к однотипному способу нападения и защиты что лишает программу возможности отбора хороших вариантов) Если ты действительно правильно выполнишь и преобразование поворота и симметрии то ты поразишься потом насколько мало в этой игре вариантов ходов.... это я тебе как математик по образованию говорю... |
| Автор: 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 5.12.2002, 20:10 | ||||
Мы в школе играли так: на большом тетрадном листе ставим крестики и нолики. Выигрывает тот, кто первым зачеркнет пять своих фигур, расположенных подряд по вертикали, горизонтали или диагонали. Своего рода усложненный вариант крестиков-ноликов. |
| Автор: podval 14.4.2004, 20:50 |
| Это сверху "летает" вопрос или победный клич? |
| Автор: kadyrov_azizbek 24.3.2005, 09:20 |
| Я тут прогу написал на QBasic-е, так она вроде работает, выигрывает, только если первая ходит. Играет на поле 20х20. Вообще если все заранее обдумать |
| Автор: 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 | ||
Спасибо за совет! У меня уже кое сто получается... |