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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 07:50   #1
GamerZAV
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 10
По умолчанию Пять в линию

Я написал игру пять в линию, где противниками выступают крестик и нолик.
А также ИИ, который играет за нолика. ИИ хорошо защищается и если сильно потерять бдительность, то можем составить линию. Однако проблема в том что ИИ долго думает и не любит атаковать. Прошу помочь в составлении алгоритма ИИ.
Заранее спасибо)

(Кому интересно исходный код и скомпилированная программа в архиве.)
Вложения
Тип файла: rar Крестики - нолики 5 на 5.rar (72.2 Кб, 68 просмотров)

Последний раз редактировалось GamerZAV; 20.02.2012 в 15:16.
GamerZAV вне форума Ответить с цитированием
Старый 20.02.2012, 19:13   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Посмотрел просто взглянуть мельком - сразу глаза режет один-единственный cs-файл.
Плюс это чудище:
Код:
if (war)
{
	lines++;
	lines++;
	lines++;
	lines++;
	lines++;
}
->
Код:
if (war)
	lines+=5;
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 20.02.2012, 21:26   #3
GamerZAV
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 10
Смущение

У меня это первый опыт в создании ИИ. Плюс алгоритм я постоянно менял и было быстрее везде вставить lines++. Но все равно спасибо исправлю
Пока в код коментарии добавляю. Завтра ,может быть, выложу прокоментированный.

Последний раз редактировалось GamerZAV; 20.02.2012 в 21:27. Причина: Грамматическая ошибка
GamerZAV вне форума Ответить с цитированием
Старый 20.02.2012, 21:37   #4
GamerZAV
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 10
По умолчанию

Но могу в примерно рассказать алгоритм ИИ.

Первое, он ищет четыре в ряд и ставит нолик в конце ряда.
Второе, (где идут циклы до minX = 10000000) лучше из кода удалить, так как оказалось, что без них он лучше работает.
Третье, (начиная с minX = 10000000 и до конца метода) идет избежание вилок и эта часть кода состоит из нескольких этапов.
1) В пустую клетку ставится нолик
2) В измененной игре поочередно в каждую пустую клетку ставится крестик
3) Считается уровень опасности
4) Добавляется к общей сумме
5) если общая сумма меньше minX, то значения mx , my , minX меняются на x, y, общую сумму
6) возврат к пункту 1) пока не пройдет все поле
7) делает ход в точку с координатами mx и my

В общих чертах так
GamerZAV вне форума Ответить с цитированием
Старый 02.05.2012, 06:52   #5
GamerZAV
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 10
По умолчанию

Решил проблему с глухой обороной теперь и атакует
Вложения
Тип файла: rar Крестики - нолики 5 на 5.rar (70.8 Кб, 61 просмотров)
GamerZAV вне форума Ответить с цитированием
Старый 02.05.2012, 10:32   #6
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

кстати сразу замечание не глядя в код используетe if InvokeRequired this.Invoke() для отрисовки и запускайте вычисления асинхронно ThreadPool или TaskFactory, а то подвисание не комильфо... а про алгоритм на мой взгляд это ГА (генетический алгоритм) чистой воды... Вам нужно найти выгрышную стратегию а не хороший ход в зависимости от предыдущего состояния....а ваш медленно работает и плохо играет не успевает перебрать все варианты, да и не успеет...!!!
Reskov вне форума Ответить с цитированием
Старый 05.05.2012, 10:55   #7
GamerZAV
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 10
По умолчанию

Спасибо! Сегодня же посмотрю на эти новые классы. Играть да стал хуже после попытки наладить атаку. Я первый раз делаю ии и поэтому прошу помощи)
GamerZAV вне форума Ответить с цитированием
Старый 05.05.2012, 11:32   #8
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Еще раз повторюсь это не задача на мин макс... т.е. на поиск лучшего хода... можно сделать 5 "плохих" ходов, но которые приведут к победе, и наоборот... т.е. ваш алгоритм заведомо не верен... так что если хотите действительно сделать хороший алгоритм копайте в сторону ГА.
Reskov вне форума Ответить с цитированием
Старый 11.05.2012, 17:47   #9
GamerZAV
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 10
Вопрос

Не получается настроить через ГА. Ну не хочет он думать логически! Ни как не получается.
Вложения
Тип файла: rar ConsoleApplication2.rar (126.8 Кб, 32 просмотров)
GamerZAV вне форума Ответить с цитированием
Старый 11.05.2012, 23:34   #10
muradov
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 39
По умолчанию

ГА это сильно. Думаю, надо сначала с весами клеток попробовать.
muradov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пять программ на математические вычисления Водонька Помощь студентам 1 06.10.2011 00:22
Пять простых задачек по физике! Helpmebro Фриланс 10 20.08.2011 01:15
введённый текст вывести пять раз ziganurov2011 Паскаль, Turbo Pascal, PascalABC.NET 11 22.07.2011 17:41
Пять заданий по практике выручайте!!!!!!!!!! Warfvare Помощь студентам 37 30.06.2010 10:08
как числа делятся на пять? Владюшка Помощь студентам 4 28.01.2010 13:26