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

ЖАНРЫ

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

Теперь этот же файл 0.gif встраиваем в проект в виде ресурса по разработанной выше схеме, а именно: в панели Solution Explorer выделяем появившееся там имя файла, а в панели Properties (для данного файла) в свойстве Build Action вместо заданного по умолчанию выбираем значение Embedded Resource, рис. 1.29.

Аналогично добавляем в эту папку и встраиваем в виде ресурса остальные графические файлы:

файлы для 52 карт, показанных выше

1.gif, 10.gif, 11.gif, 12.gif, …, 52.gif,

файл bank.jpg фона экрана, также показанного выше,

файл рисунка

загрузки loading.gif, который появляется в начале и исчезает после окончания загрузки в программу всех графических и звуковых файлов

Добавляем в проект звуковой файл pj_bg_noise.wav (для имитации нервного шума групп поддержки игрока и Банкомёта) по стандартной схеме, а именно: выполняем правый щелчок по имени этой папки, в контекстном меню выбираем Add, Existing Item, в панели Add Existing Item в окне “Files of type” выбираем “All Files”, в центральном окне находим и выделяем имя файла (загруженного, например, из Интернета или из указанной в списке литературы ссылки) и щёлкаем кнопку Add (или дважды щёлкаем по имени файла). В панели Solution Explorer мы увидим этот файл.

Аналогично добавляем в эту папку остальные звуковые файлы:

pj_busted.wav – звук неудовольствия группы поддержки при переборе карт игроком;

pj_claps.wav – звук аплодисментов группы поддержки при выигрыше игрока на данной сдаче карт;

pj_pj.wav – радостный шум группы поддержки и голос за кадром, произносящий PocketJack при выигрыше игрока на данной сдаче карт.

Напомним, что добавлять в проект указанные выше файлы можно как по одному, так и все сразу, и выбирать значение Embedded Resource можно как для одного файла, так и для всех файлов сразу (после их выделения или только одной мышью, или мышью с нажатой клавишей Shift – для выделения всех соседних файлов после щелчка только первого и последнего файлов, или мышью с нажатой клавишей Ctrl – для выделения всех файлов в различных местах).

В данном проекте, DirectX не применяется.

1.19. Код программы

Открываем файл Form1.cs (например, по схеме: File, Open, File) и в самом верху импортируем пространства имён для управления соответствующими классами:

using System.Reflection; //Namespace for class Assembly.

using System.Media; //Namespace for class SoundPlayer.

using System.IO; //Namespace for class Stream.

В классе Form1 нашего проекта записываем следующие переменные и методы.

Листинг 1.1. Переменные и методы.

//Shoe of cards:

CardShoe shoe;

CardHand playerHand = new CardHand;

Card dealerHoleCard;

CardHand dealerHand = new CardHand;

//Bank of a game:

Pot pot;

//We declare an object for a help form:

Form2 helpForm;

Image loadingImage = null;

Image bankImage = null;

public enum GameMode

{

LoadingDisplay,

PlacingBets,

PlayerActive,

PlayerWon,

PlayerBust,

PocketJack,

DealerActive,

DealerWon,

DealerBust,

Push

}

GameMode modeValue;

GameMode mode

{

get

{

return modeValue;

}

set

{

switch (value)

{

case GameMode.LoadingDisplay:

BetMinusToolStripMenuItem1.Enabled = false;

BetPlusToolStripMenuItem.Enabled = false;

HitMeToolStripMenuItem.Enabled = false;

StayToolStripMenuItem.Text = "Point";

StayToolStripMenuItem.Enabled = false;

MenuToolStripMenuItem.Text = "21";

MenuToolStripMenuItem.Enabled = false;

break;

case GameMode.PlacingBets:

BetMinusToolStripMenuItem1.Enabled = true;

BetPlusToolStripMenuItem.Enabled = true;

HitMeToolStripMenuItem.Enabled = false;

StayToolStripMenuItem.Text = "Себе";

StayToolStripMenuItem.Enabled = true;

MenuToolStripMenuItem.Text = "Menu";

MenuToolStripMenuItem.Enabled = true;

break;

case GameMode.PlayerActive:

BetMinusToolStripMenuItem1.Enabled = false;

BetPlusToolStripMenuItem.Enabled = false;

HitMeToolStripMenuItem.Enabled = true;

StayToolStripMenuItem.Text = "Take a card to yourself";

StayToolStripMenuItem.Enabled = true;

MenuToolStripMenuItem.Text = "Menu";

MenuToolStripMenuItem.Enabled = true;

//Disturbing noise of the support groups

//surrounding the player:

//not single, but continuous Looping;

Assembly a = Assembly.GetExecutingAssembly;

Stream s =

a.GetManifestResourceStream(

"PocketJack.pj_bg_noise.wav");

SoundPlayer player = new SoundPlayer(s);

player.PlayLooping;

break;

case GameMode.PlayerWon:

BetMinusToolStripMenuItem1.Enabled = false;

BetPlusToolStripMenuItem.Enabled = false;

HitMeToolStripMenuItem.Enabled = false;

StayToolStripMenuItem.Text = "Distribution of cards";

StayToolStripMenuItem.Enabled = true;

MenuToolStripMenuItem.Text = "Menu";

MenuToolStripMenuItem.Enabled = true;

//An applause in our address for a prize in cards:

Assembly a1 = Assembly.GetExecutingAssembly;

Stream s1 =

a1.GetManifestResourceStream(

"PocketJack.pj_claps.wav");

SoundPlayer player1 = new SoundPlayer(s1);

player1.Play;

break;

case GameMode.PlayerBust:

BetMinusToolStripMenuItem1.Enabled = false;

BetPlusToolStripMenuItem.Enabled = false;

HitMeToolStripMenuItem.Enabled = false;

StayToolStripMenuItem.Text = "Distribution of cards";

StayToolStripMenuItem.Enabled = true;

MenuToolStripMenuItem.Text = "Menu";

MenuToolStripMenuItem.Enabled = true;

//Discontent of support group with our exceeding of

//cards:

Assembly a2 = Assembly.GetExecutingAssembly;

Stream s2 =

a2.GetManifestResourceStream(

"PocketJack.pj_busted.wav");

SoundPlayer player2 = new SoundPlayer(s2);

player2.Play;

break;

case GameMode.PocketJack:

BetMinusToolStripMenuItem1.Enabled = false;

Поделиться с друзьями: