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

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

28.07.2014, 09:31. Показов 8687. Ответов 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,531
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,531
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,531
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
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru