Чтение онлайн

на главную - закладки

Жанры

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 8: Программирование на Visual C# искусственного интеллекта. Издание 2. Продолжение 1
Шрифт:

{

mode = GameMode.DealerWon;

//We write in the original:

pot.DoPlaceBet;

pot.HouseWins;

showPot;

return;

}

if (playerHand.BlackJackScoreHand ==

dealerHand.BlackJackScoreHand)

{

mode = GameMode.Push;

pot.DoPushBet;

showPot;

return;

}

}

void doLeftMenuKey

{

switch (mode)

{

case GameMode.LoadingDisplay:

break;

case GameMode.PlacingBets:

startPlay;

break;

case GameMode.PlayerActive:

playerStays;

break;

case GameMode.PocketJack:

case GameMode.PlayerWon:

case GameMode.PlayerBust:

case GameMode.DealerActive:

case GameMode.DealerWon:

case GameMode.DealerBust:

case GameMode.Push:

startHand;

break;

}

}

void doEnter

{

switch (mode)

{

case GameMode.LoadingDisplay:

break;

case GameMode.PlacingBets:

startPlay;

break;

case GameMode.PlayerActive:

playerHits;

break;

case GameMode.PocketJack:

case GameMode.PlayerWon:

case GameMode.PlayerBust:

case GameMode.DealerActive:

case GameMode.DealerWon:

case GameMode.DealerBust:

case GameMode.Push:

startHand;

break;

}

}

void doUp

{

switch (mode)

{

case GameMode.PlacingBets:

pot.DoIncreaseBet;

showPot;

this.Invalidate;

break;

}

}

void doDown

{

switch (mode)

{

case GameMode.PlacingBets:

pot.DoDecreaseBet;

showPot;

this.Invalidate;

break;

}

}

void showHelp

{

helpForm.ShowDialog;

}

В

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

Листинг 1.2. Метод для загрузки файлов объектов.

private void Form1_Load(object sender, EventArgs e)

{

//We load the game objects:

init;

startGame;

}

В панели Properties (для Form1) на вкладке Events дважды щёлкаем по имени события Paint. Появившийся шаблон метода Form1_Paint после записи нашего кода принимает следующий вид. Напомним, что другие варианты вывода изображения, например, на элемент управления PictureBox и после щелчка по какому-либо элементу управления уже приводились ранее.

Листинг 1.3. Метод для рисования изображений.

private void Form1_Paint(object sender, PaintEventArgs e)

{

paintForm(e.Graphics);

}

Для задания режимов и управления игрой воспользуемся каким-либо элементом управления или компонентом. Как и выше, с панели инструментов Toolbox переносим на форму компонент MenuStrip и щёлкаем по нему (ниже формы в режиме

проектирования). На форме Form1 появляются окна с надписью Type Here, в которые записываем команды (по второму варианту, можно записывать в панели Properties в свойстве Text): Stay, Menu, Exit, HitMe, BetPlus, BetMinus, Sound, Help, рис. 1.30. Для команды, слева от которой поставлен флажок, в панели Properties для этой команды значение Checked следует задать как True.

Рис. 1.30. Команды элемента управления MenuStrip.

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

Листинг 1.4. Метод для приостановки игры.

private void StayToolStripMenuItem_Click(object sender, EventArgs e)

{

doLeftMenuKey;

}

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

Листинг 1.5. Метод для окончания игры.

private void ExitToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit;

}

Аналогично дважды щёлкаем по команде “Hit Me”. Появившийся шаблон метода после записи нашего кода принимает следующий вид.

Листинг 1.6. Метод для выдачи карты игроку.

private void HitMeToolStripMenuItem_Click(object sender, EventArgs e)

{

playerHits;

}

Аналогично дважды щёлкаем по команде “BetPlus”. Появившийся шаблон метода после записи нашего кода принимает следующий вид.

Листинг 1.7. Метод для увеличения Ставки.

private void BetPlusToolStripMenuItem_Click(object sender, EventArgs e)

{

doUp;

}

Аналогично дважды щёлкаем по команде “Ставка -” (Bet -). Появившийся шаблон метода после записи нашего кода принимает следующий вид.

Листинг 1.8. Метод для уменьшения Ставки.

private void BetMinusToolStripMenuItem1_Click(object sender, EventArgs e)

{

doDown;

}

Методика приостановки и возобновления звука при помощи установки и удаления флажка в команде Звук (Sound) была описана выше. В данной игре, звук включён постоянно.

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

Листинг 1.9. Метод для вывода справочной формы.

private void HelpToolStripMenuItem_Click(object sender, EventArgs e)

Поделиться:
Популярные книги

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь