Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Taras_Z
100 / 84 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
#1

ИИ для крестиков ноликов на С++ - C++

25.02.2012, 16:42. Просмотров 3852. Ответов 15

вот написал крестики нолики 3х3
но немогу написать ИИ для компа
тупо перебирать все комбинации типа :
C++
1
2
3
if(a[0][0]==a[0][1] && a[0][0]!=' '){ a[0][2]=charr;}
if(a[0][1]==a[0][2] && a[0][1]!=' '){ a[0][0]=charr;}
if (a[0][0]==a[0][2] && a[0][0]!=' '){ a[0][1]=charr;}
не интересно
как можно написать ИИ?
 Комментарий модератора 
На форуме есть теги для выделения кода!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 16:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос ИИ для крестиков ноликов на С++ (C++):

Бот для крестиков-ноликов
Хочу написать бота для крестиков-ноликов и вот тут незадача, или нужно...

Создать массив для игрового поля крестиков-ноликов
Создать массив 13Х13 и заполнить его символами так, чтобы получилось игровое...

Найти вероятность выпадения крестиков, ноликов и пустой клетки
Проблема в следующем мой преподаватель скинул мне готовую программу для...

Функция для крестиков-ноликов
Здравствуйте, я пишу свою первую программу на функциональном языке...

Искусственный интеллект для больших крестиков-ноликов
Пишу игрушку - клеточное поле 19*19, крестики и нолики, надо составить 5 в ряд....

Сделать графический интерфейс для крестиков-ноликов
Здравствуйте. Есть код для крестиков-ноликов, все более-менее работает. Хочу...

15
R136a1
143 / 112 / 36
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 16:53 #2
Есть два подхода к созданию ИИ:
Нисходящий - в вашем случае это воссоздать все возможные комбинации игры и пути решения
Восходящий - тут гораздо сложнее. Смотри Искусственная нейронная сеть
0
Taras_Z
100 / 84 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:00  [ТС] #3
нуу мне тогда остается всё перебирать.....
0
R136a1
143 / 112 / 36
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:05 #4
Цитата Сообщение от Taras_Z Посмотреть сообщение
нуу мне тогда остается всё перебирать.....
Можно ещё анализировать комбинации, хотя это тоже в каком то смысле "перебор"
0
Taras_Z
100 / 84 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:06  [ТС] #5
а примера у вам нету случайно?
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.02.2012, 17:14 #6
Тут, наверное, эвристикой нужно делать.
Если строить дерево игры, то выиграть будет слишком сложно, и играть будет неинтересно.
А если рандомно делать ходы - слишком легко, что, опять же, неинтересно.
0
Taras_Z
100 / 84 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:20  [ТС] #7
а у вас есть пример крестиков ноликов???
а то я на двоих сделал а с компом не получается=)
0
R136a1
143 / 112 / 36
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:22 #8
Цитата Сообщение от Taras_Z Посмотреть сообщение
а примера у вам нету случайно?
Ну например игрок ходит первым (нолик) player[1][0], компьютер например может оценить куда игроку выгоднее всего пойти и сравнить со своей текущей позицией и будущем предпочтительным шагом, ну например computer[0][2]. Далее допустим игрок идет так player[0][0], теперь компьютеру выгоднее всего обломать игрока (т.е. компьютер уже знает какую скорее всего комбинацию задумал игрок и ему нужно будет помешать его планам) - computer[2][0] и тд.
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
25.02.2012, 17:38 #9
http://www.cyberforum.ru/cgi-bin/latex.cgi?3^{(3*3)}=19683. Это не такое уж большое количество вариантов текущего состояния, для всех можно заранее выбрать и записать правильный следующий ход.
0
R136a1
143 / 112 / 36
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:46 #10
Цитата Сообщение от taras atavin Посмотреть сообщение
http://www.cyberforum.ru/cgi-bin/latex.cgi?3^{(3*3)}=19683. Это не такое уж большое количество вариантов текущего состояния, для всех можно заранее выбрать и записать правильный следующий ход.
Я не это имел в виду. Я имел в виду что можно отталкиваться от того как пошел игрок и уже потом строить планы относительно хода компьютера
0
Taras_Z
100 / 84 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:56  [ТС] #11
я пока сделал проверку еслть ли подряд два крестика итого 22 варианта....
0
Питекантроп
248 / 142 / 21
Регистрация: 14.06.2010
Сообщений: 340
25.02.2012, 18:06 #12
Все перебирать нет никакой необходимости. Нужно расставлять весовые коэффициенты для ячеек в зависимости от перспектив образования ряда при ходе в соответствующую ячейку.
Крестики-нолики 3x3 я писал на c#. Сам так называемый "ИИ" там относительно небольшой, поэтому разберешься.
0
Taras_Z
100 / 84 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 18:30  [ТС] #13
спасибо очень!
0
Питекантроп
248 / 142 / 21
Регистрация: 14.06.2010
Сообщений: 340
25.02.2012, 18:45 #14
там, кстати, ИИ в одном случае неправильно ходит. Найдешь в каком?
0
Taras_Z
100 / 84 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 18:52  [ТС] #15
хорошо но потом=) щас дела...
0
ilnuribat
0 / 0 / 0
Регистрация: 08.06.2012
Сообщений: 1
11.06.2012, 23:50 #16
Цитата Сообщение от Taras_Z Посмотреть сообщение
а у вас есть пример крестиков ноликов???
Я взял в качестве курсовой работы игру крестики-нолики, реализовав там нейронную сеть.
exe файл тут :
0
11.06.2012, 23:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2012, 23:50
Привет! Вот еще темы с решениями:

Поиск выигрышных ситуаций для крестиков-ноликов на неограниченном поле
Каким способом можно наиболее эффективно найти на игровом поле координаты всех...

Какую библиотеку/гем лучше всего использовать для создания графических крестиков-ноликов на Ruby?
Какую библиотеку/гем лучше всего использовать для создания графических...

Добавить счетчик побед крестиков и ноликов, изображение на интерфейсе используя Label
namespace WindowsFormsApplication1 { public partial class fMain : Form ...

Нужен исходник "крестиков-ноликов" с рандомным ходом
есть у кого исходник крестиков ноликов с рандомным ходом в windows forms? а то...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru