Валерий Жарков - Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 2: Программирование на Visual C# искусственного интеллекта (продолжение 1)
- Название:Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 2: Программирование на Visual C# искусственного интеллекта (продолжение 1)
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:9785005680433
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валерий Жарков - Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 2: Программирование на Visual C# искусственного интеллекта (продолжение 1) краткое содержание
Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 2: Программирование на Visual C# искусственного интеллекта (продолжение 1) - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
В следующем томе автор (доктор технических наук Жарков Валерий Алексеевич) продолжит описывать программирование ИИ в следующих играх и приложениях.
Вопросы, замечания и предложения по тематике книги можно направлять по email:
valery-zharkov@mtu-net.ru
или с сайта нашего «Издательства «Жарков Пресс»:
www.ZharkovPress.ru.
На этом же сайте можно познакомиться с новыми компьютерными книгами «Издательства «Жарков Пресс» (город Москва).
Часть III. Методология программирования искусственного интеллекта в играх в «Крестики-нолики» для Игрока с Компьютером и двух Игроков
Глава 11. Методика программирования искусственного интеллекта в игре в «Крестики-нолики» на сетке 3x3
11.1. Общие сведения
В данной главе мы опишем методику разработки игры, которая предусматривает сразу оба варианта игры: Игрок 1 – Игрок 2 и Игрок – Компьютер. Данную игру мы будем разрабатывать, следуя проекту из книги [Philip Conrod, Lou Tylee. Programming Games with Visual C#. Publisher: Kidware Software LLC; 15 edition (11 July 2017)], но с нашими усовершенствованиями для современной версии VS.
В игре не будут использоваться графические файлы. Поэтому игроки будут воздействовать на надписи типа Label. Перед началом и после победного или ничейного окончания игры звучит соответствующая музыка. Программа состоит из трёх частей:
1) модель игры, которой в программе соответствует файл Form1.cs [Design] *;
2) интерфейс пользователя (user interface – UI), которому в программе соответствует файл Form1.cs;
3) искусственный интеллект (artificial intellect – AI) в виде метода ComputerTurn (), который размещён в файле Form1.cs.
Для основного и самого сложного варианта игры Игрок – Компьютер (для которого надо выбрать второй переключатель) используются все три части программы.
А для упрощённого варианта игры Игрок 1 – Игрок 2 (который установлен по умолчанию) используются только первые две части программы (вместо искусственного интеллекта Компьютера используется интеллект Игрока 2).
11.2. Правила игры
1. После разработки игры по описанной далее методике выполняем проект (нажимаем F5 или Ctrl+F5). Игра появится в своём «остановленном» состоянии, сетка очищена и ожидает Вас для выбора игровых опций (один или два игрока и, если один игрок, который идёт сначала и как умный Вы хотите, чтобы компьютер был). Сетка отключена – никакие метки не могут быть сделаны (путём щелчка по сетке). Я выбрал одну игру для одного игрока, куда я иду сначала (предоставление мне X) и умный компьютер (рис. 11.1).
2. Нажимаем кнопку Start Game, чтобы начать играть. Его заголовок изменится (теперь читаем как Stop Game) и групповые блоки опций, и кнопка Exit станет отключённой (рис. 11.2). Метка Label наверху сетки говорит, что очередь за X. X всегда идёт сначала в этой игре (является ли это Вами, как человеческим игроком, или компьютером).

Рис. 11.1.

Рис. 11.2.
В этом состоянии игры мы нажимаем на желаемый квадрат. Компьютер тогда поместит свою метку, передавая нам очередь. После каждой метки плата исследована на победу или ничью. Вы продолжаете чередовать игру, пока нет победы, сетка полна или пока Вы не нажимаете Stop Game. Игра работает таким же путём для двух игроков, с этими двумя игроками, чередующими щелчки, отмечающие сетку.
3. Вводим метку (Х); я выбрал центральный квадрат, и компьютер сразу поместил свою метку (O) в левом верхнем углу (рис. 11.2).
4. Я пробую левый нижний угол, а компьютер блокирует меня от победы (рис. 11.3).

Рис. 11.3.
5. Я блокирую возможную победу компьютера путём помещения X в среднее поле верхнего ряда. Затем компьютер блокирует меня с перемещением к середине нижнего ряда (рис. 11.4).
Похоже, здесь никто не собирается победить.
6. Я продолжаю играть, ставлю X направо от средней строки.
7. Компьютер блокируем меня, ставя О слева в среднем ряду (рис. 11.5).
8. Я ставлю X в оставшейся клетке, мы закончили вничью (рис. 11.6).
Похоже, компьютер довольно умён, у компьютера сложно выиграть.
Так по очереди Игрок и Компьютер стараются получить как можно больше побед за установленное заранее Игроком количество игр.
После любой победы Компьютера в игру может вступить новый (из очереди) Игрок.
9. Чтобы в игре участвовали два игрока (для варианта игры Игрок 1 – Игрок 2), следует выбрать переключатель Two Players. Далее Игрок 1 играет против Игрока 2 по приведённым выше правилам. Если выбрать переключатель Random Computer или Two Players, то можно победить компьютер или второго игрока (рис. 11.7).
10. Нажмите Exit для остановки игры.

Рис. 11.4.

Рис. 11.5.

Рис. 11.6.

Рис. 11.7.
На основании этих правил можно сформулировать другие правила, и любые правила ввести в справочную форму, которую можно разработать по приведённым в других главах методикам.
11.3. Создание проекта
Создаём проект по обычной схеме: в VS в панели New Project в окне Project types выбираем тип проекта Visual C#, Windows, в окне Templates выделяем шаблон Templates, Visual C#, Windows Classic Desktop, Windows Forms App (.NET Framework), в окне Name записываем любое имя проекта, например, TicTacToe_variant1 и щёлкаем OK. Создаётся проект, появляется форма Form1 на экране в режиме проектирования.
C панели инструментов Toolbox переносим на форму элементы управления Control и устанавливаем для формы и элементов управления следующие свойства:
Form1 Form:
Property Name Property Value
Name frmTicTacToe
BackColor White
Text TicTacToe_variant1
FormBorderStyle Fixed Single
StartPosition CenterScreen
Size 478; 410
label1 Label:
Property Name Property Value
Name lblMessage
AutoSize False
BackColor Yellow
ForeColor Blue
BorderStyle Fixed3D
Font Style Bold
Font Size 24
Text X’s Move
TextAlign MiddleCenter
Location 12; 9
Size 272; 46
label2 Label:
Property Name Property Value
Name lblBox1
Font Microsoft Sans Serif; 48pt
AutoSize False
BorderStyle None
Font Size 48
Text X
TextAlign MiddleCenter
Location 12; 66
Size 76; 76
label3 Label:
Property Name Property Value
Name lblBox2
Font Microsoft Sans Serif; 48pt
AutoSize False
BorderStyle None
Font Size 48
Text X
TextAlign MiddleCenter
Location 110; 66
Size 76; 76
Интервал:
Закладка: