Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/47: Рейтинг темы: голосов - 47, средняя оценка - 4.91
3 / 3 / 2
Регистрация: 10.10.2010
Сообщений: 55

Алгоритм игры "Крестики-Нолики"

28.07.2014, 09:31. Показов 8663. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, хочу в тренировочных целях написать простенькую игры.
Собственно интересует алгоритм поведения ии, можно конечно написать несколько десятков if'ов, но возможно есть и какие-то другие идеи?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2014, 09:31
Ответы с готовыми решениями:

Мозг для игры крестики нолики
Добрый вечер уважаемые. Написал Игру крестики нолики. Компьютер играет рандомно. Может кто то поможет с интеллектом? /** * Created by...

Ошибка в проверке окончания игры в крестики нолики
Сап, форумчане. Написал следующую проверку на окончание игры в крестики-нолики: function checkGameEnd(winner) { //проверяем, не...

Крестики нолики
Здравствуйте, не могу установить массиву ячеек каждое взаимодействие onclick. Вот код... <!DOCTYPE html> <html> ...

10
Нет ТЗ - давай досвидания
 Аватар для BuPy7
746 / 377 / 64
Регистрация: 01.12.2011
Сообщений: 2,250
Записей в блоге: 6
28.07.2014, 09:36
loms, так или иначе мозги тебе ему давать нужно будет, указывать комбинации и т.д. Самый простой AI это random по пустым клеточкам. =)
0
 Аватар для Web-ulyanov
55 / 54 / 24
Регистрация: 07.10.2013
Сообщений: 200
28.07.2014, 10:22
BuPy7
С рандомом скрипт будет постоянно проигрывать, т.к даже в заведомо выигрышной ситуации он может поставить метку не туда куда нужно, а мимо.Тут нужно сделать как-то по другому.Есть вариант написать кучу if после каждого хода для анализа всех клеток и из этого соответственно действовать, но это во-первых не очень лаконичный код получится, а во вторых если я захочу(или пользователь) изменить кол-во клеток допустим на 5x5, то такая конструкция уже работать не будет или придется задействовать еще больше проверок.
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
28.07.2014, 22:07
Математики давно объяснили, в каждой игре есть так называемая выигрышная стратегия, если ты её не знаешь, нет смысла писать подобные игры, иначе будет как сказал Web-ulyanov.
А если ты знаешь выигрышную стратегию, то её и нужно описывать. Все остальное это куча бессмысленных проверок.
0
Нет ТЗ - давай досвидания
 Аватар для BuPy7
746 / 377 / 64
Регистрация: 01.12.2011
Сообщений: 2,250
Записей в блоге: 6
28.07.2014, 22:09
Цитата Сообщение от Web-ulyanov Посмотреть сообщение
С рандомом скрипт будет постоянно проигрывать
А я не говорил, что будет выигрывать. Это самый примитивный вариант.
0
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
28.07.2014, 22:42
Цитата Сообщение от newJS Посмотреть сообщение
Математики давно объяснили, в каждой игре есть так называемая выигрышная стратегия, если ты её не знаешь, нет смысла писать подобные игры
у нас же всегда есть бутылочка!

в крестиках можно не позорится, забивая выйгрышные комбинации, а просто перебрать возможные ходы
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
29.07.2014, 07:44
nubideus, Вот это математики и называют выигрышной стратегией, и про это существуют книги выпущенные ещё до "появления" компьютеров.
А статейка хорошая, именно это и нужно ТС.

Цитата Сообщение от nubideus Посмотреть сообщение
а просто перебрать возможные ходы
А такое справедливо называют быдлокодом. Зная что пишешь неправильно, продолжать писать, ХМ, лучше бросить и не позориться, а еще лучше искать как написать правильно.
0
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
29.07.2014, 16:08
Цитата Сообщение от newJS Посмотреть сообщение
А такое справедливо называют быдлокодом
благодаря этому "былокоду" человек не может выиграть в шашки у компьютера
Полностью перебрать дерево в крестиках-ноликах может даже школьник. В шашках число возможных позиций оценивается числом 10^20. Это очень и очень много, но в 2007 году суперкомпьютер сумел просчитать все возможные ходы. Т.е., начиная с 2007 года, человек не может (даже теоретически) выиграть у компьютера.
Цитата Сообщение от newJS Посмотреть сообщение
А статейка хорошая, именно это и нужно ТС.
и в статье, про крестики нолики говорится только о переборе, о сужении диапазона перебора, и о выборе лучшего хода

в крестиках-ноликах нет никакой выигрышной стратегии, есть только http://xkcd.com/832/
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
29.07.2014, 21:33
Цитата Сообщение от nubideus Посмотреть сообщение
в крестиках-ноликах нет никакой выигрышной стратегии
прочитайте хотя бы Википедию:
Для каждой из сторон общеизвестны алгоритмы, которые гарантируют ничью при любой игре противника, а при его ошибке позволяют выиграть.
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
29.07.2014, 21:57
Цитата Сообщение от nubideus Посмотреть сообщение
в крестиках-ноликах нет никакой выигрышной стратегии
Есть.
Цитата Сообщение от nubideus Посмотреть сообщение
благодаря этому "былокоду" человек не может выиграть в шашки у компьютера
шашки серьезная игра, и быдлокодом там не обойтись, блок принятия решений сначала просчитывают математики, а только потом по их наработкам пишут код. Иначе ловить не чего.
0
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
29.07.2014, 22:27
kalabuni, в той же википедии написано:
Для решения такого рода игр на компьютере строится дерево игровых ситуаций в соответствии с методом мини-макс. Полное число узлов в таком дереве равно 255168.
newJS, мне кстати интересно почему ты алгоритм называешь быдлокодом, причем не обосновываешь и не аргументируешь.
-перебор можно оптимизировать сужением диапазона и кешированием первых ходов.
-легко настроить сложность бота, изменяя глубину рекурсии.
-простая реализация.

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

Цитата Сообщение от newJS Посмотреть сообщение
Есть.
в студию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.07.2014, 22:27
Помогаю со студенческими работами здесь

крестики нолики JavaScript
Необходимо создать игру Крестики Нолики(Игрок VS. Компьютер) Чем проще тем лучше))

Крестики-нолики на javascript
Помогите пожалуйста написать функцию проверки победы для игры Крестики нолики находиться в файле gamescript.js gamestyle.css: ...

Игра крестики-нолики
Приветствую! Есть простенькая игра крестики-нолики. В ней сейчас можно делать бесконечное количество кликов - то есть, если нажать на...

Крестики-нолики сетевая игра
Есть готовые файлы игры в крестики нолики - нужно дополнить функционал: 1) Отображение никнейма противника в браузере игрока 2)...

Игра на java script крестики-нолики
Помогите написать игру на javascript крестики-нолики. Крестики-нолики запускаются в режиме одного пользователя. Логика должна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru