Валерий Алексеевич Жарков - Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 2: Программирование на Visual C# искусственного интеллекта (продолжение 1) стр 6.

Книгу можно купить на ЛитРес.
Всего за 488 руб. Купить полную версию
Шрифт
Фон

}


Дважды щёлкаем по первой кнопке в режиме проектирования или в панели Properties (для этой кнопки) на вкладке Events дважды щёлкаем по имени события Click. Появившийся шаблон метода после записи нашего кода принимает следующий вид.


Листинг 11.3. Метод.

private void btnStartStop_Click (object sender, EventArgs e)
{
if (btnStartStop. Text == «Start Game»)
{
btnStartStop. Text = «Stop Game»;
grpPlayers. Enabled = false;
grpFirst. Enabled = false;
grpComputer. Enabled = false;
btnExit. Enabled = false;
xTurn = true;
lblMessage. Text = «Xs Turn»;
// reset boxes
for (int i = 0; i <9; i++)
{
boxArray [i].Text = «»;
boxArray[i].BackColor = Color. White;
}
canClick = true;
numberClicks = 0;
gameOver = false;
if (rdoComputerFirst.Checked &&
rdoOnePlayer.Checked)
ComputerTurn ();
}
else
{
btnStartStop. Text = «Start Game»;
if (!gameOver)
lblMessage. Text = «Game Stopped»;
grpPlayers. Enabled = true;
if (rdoOnePlayer.Checked)
{
grpFirst. Enabled = true;
grpComputer. Enabled = true;
}
btnExit. Enabled = true;
canClick = false;

}

}


Дважды щёлкаем по второй кнопке в режиме проектирования или в панели Properties (для этой кнопки) на вкладке Events дважды щёлкаем по имени события Click. Появившийся шаблон метода после записи нашего кода принимает следующий вид.


Листинг 11.4. Метод.


private void btnExit_Click (object sender, EventArgs e)

{

this.Close ();

}


В панели Properties для второго переключателя на вкладке Events дважды щёлкаем по имени события Click. Появившийся шаблон метода после записи нашего кода принимает следующий вид.


Листинг 11.5. Метод.

private void rdoOnePlayer_Click (object sender, EventArgs e)
{
grpFirst. Enabled = true;
grpComputer. Enabled = true;

}


В панели Properties для первого переключателя на вкладке Events дважды щёлкаем по имени события Click. Появившийся шаблон метода после записи нашего кода принимает следующий вид.


Листинг 11.6. Метод.

private void rdoTwoPlayers_Click (object sender, EventArgs e)
{
grpFirst. Enabled = false;
grpComputer. Enabled = false;

}


Если мы желаем, чтобы при завершении игры с результатом «Ничья» или «Победа» звучала соответствующая музыка, необходимо раскомментировать строки кода, в которых есть слово «Sound», и отладить проект.

Строим и запускаем программу на выполнение обычным образом: Build, Build Selection; Debug, Start Without Debugging.

В ответ Visual Studio выводит форму Form1 с показанным выше полем игры из 9 клеток.

Далее Игрок играет с Компьютером или Игрок 1 играет с Игроком 2 в крестики-нолики согласно приведённым выше правилам.

По методике данной главы можно разрабатывать самые разнообразные игры в крестики-нолики как для игры Игрока с Компьютером, так и для игры Игрока 1 с Игроком 2.


Глава 12. Методика программирования искусственного интеллекта в игре в «Крестики-нолики» на сетке 6x7

12.1. Общие сведения

Разработаем методику проектирования и программирования типичной и широко распространённой игры типа игры в крестики-нолики. Известно много вариантов этой игры как в ручном, так и в компьютерном варианте.

В ручном варианте смысл игры состоит в том, что, например, в тетради в клеточку на поле из квадратов, например, 6 x 7 квадратов (цифры соответствуют количеству квадратов по оси абсцисс «x» и оси ординат «y») два игрока по очереди выделяют квадраты крестиками и ноликами, стараясь первым выделить горизонтальную, вертикальную или диагональную линию из определённого количества крестиков или ноликов.

Данную компьютерную игру мы будем разрабатывать, следуя статье [см. Список литературы: Article from the website: www.codeproject.com/netcf/Connect4AB.asp: Labib B. Connect4 using Alpha-Beta Search algorithm], но с нашими усовершенствованиями для современной версии Visual Studio.

В данной игре (игрока с компьютером) не будут использоваться графические файлы. Поэтому сначала методом FillRectangle класса Graphics на форме рисуется прямоугольник (поле игры), заполненный синим цветом RoyalBlue:


e.Graphics.FillRectangle (new SolidBrush(Color.RoyalBlue),

15, 70, 210, 180);


где 15, 70  координаты верхнего левого угла прямоугольника (от верхнего левого угла формы, когда ось «y» направлена вниз);

210, 180  размеры прямоугольника соответственно по осям «x» и «y».

Далее методом FillEllipse класса Graphics в этом прямоугольнике рисуются 6 x 7 кружочков (ноликов) диаметром 27 пикселей белого цвета White:


g.FillEllipse (new SolidBrush (Color. White),

x +3, y +3, 27, 27);


Когда игрок щёлкает мышью по белому кружочку, этот белый кружочек заменяется таким же кружочком, но жёлтого цвета Yellow:


g.FillEllipse (new SolidBrush (Color. Yellow),

x +3, y +3, 27, 27);


После расчёта вариантов (по определённому математическому алгоритму, реализованному в показанной далее программе) компьютер заменяет один белый кружочек таким же кружочком красного цвета Red:

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3