Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2013, 14:42   #1
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию c# как написать ии для крестиков в "крестики нолики"

сделал таким образом, он от Random работает .как сделать по другому ?
Код:
Random a2 = new Random();
         timer1.Enabled = true;
         if (!answer)
       
             a[a2.Next(2), a2.Next(2)].PerformClick();
         else if (!a[a2.Next(2), a2.Next(2)].Enabled) {
             a[a2.Next(2), a2.Next(2)].PerformClick();
         }

 private void           timer1_Tick                 (object sender,EventArgs e)
     {
         if (!answer) {
             Random a4 = new Random();
             a[a4.Next(3), a4.Next(3)].PerformClick();
       }
         else if (answerAboutWon0 || answerAboutWonX ||q==9) 
         {
             timer1.Enabled = false;
         }
     }
proef вне форума Ответить с цитированием
Старый 22.08.2013, 19:14   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

если поле маленькое - полным перебором.
Если не крестики нолики, а гомоку (поле большое) - альфа-бета перебор
rrrFer вне форума Ответить с цитированием
Старый 22.08.2013, 19:45   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
если поле маленькое - полным перебором.
Проще правилом - проверяем на предмет помешания противнику закончить линию/диагональ или центр или угол или без разницы.
waleri вне форума Ответить с цитированием
Старый 22.08.2013, 20:32   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Если крестики-нолики, то есть простая стратегия.
а. Первым ходит ЭВМ.
1. Первый ход - занять центр.
2. Если человек ставит в середине столбцов/строк, то
3. Следующий ход в один из углов и далее - выигрыш.
4. Если человек ставит в угол, то следует занимать свободный угол и следить за противником, что бы не было двух занятых ячеек в строках или столбцах.

б. Первый ход - человек.
1. Если центр не занят, занять центр.
2. Следить за ходами человека, анализируя п.4 (см. выше).

Игра может быть либо выиграна (человек "слаб"), либо сведена к ничьей.
Ну а если немного добавить слабинки, то первый и второй ход перекосить random'ом.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 22.08.2013, 23:49   #5
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию

спасибо Всем за Ответы
proef вне форума Ответить с цитированием
Старый 23.08.2013, 19:24   #6
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию

щас выложу что вышло ,попробуйте выиграть в режиме "Робот"

Последний раз редактировалось proef; 23.08.2013 в 19:31.
proef вне форума Ответить с цитированием
Старый 23.08.2013, 19:31   #7
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию

Попробуйте его победить теперь))
Вложения
Тип файла: rar крестики-нолики.rar (7.3 Кб, 140 просмотров)

Последний раз редактировалось proef; 23.08.2013 в 19:50.
proef вне форума Ответить с цитированием
Старый 23.08.2013, 20:02   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

А вы сделайте два режима робот - чтоб сам с собой играл
Если будет выигрывать, знчит чтото не так...
waleri вне форума Ответить с цитированием
Старый 23.08.2013, 20:06   #9
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

proef
под линукс никак не собрать? - тогда да, пусть бот сам с собой играет )
rrrFer вне форума Ответить с цитированием
Старый 24.08.2013, 00:27   #10
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Упорно оттягивает выигрыш. Не видит свои 2 подряд идущих крестика и ставит куда-то в другое место
1.jpg
Структура из if'ов? Видимо не все комбинации перечислены
2.jpg
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод и вывод имени игрока в игре "Крестики-нолики" Loki1993 Помощь студентам 0 04.10.2012 18:15
Ввод и вывод имени игрока в игре "Крестики-нолики" Loki1993 PHP 1 04.10.2012 16:53
Создание игры "Крестики нолики" на php Loki1993 PHP 4 20.09.2012 20:33
Не получается в игре "Крестики-нолики" вывести нолик, после крестика (на php, с использованием div)) 777111 Помощь студентам 0 26.12.2011 22:24