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

Шрифт
Интервал


SoundPlayer player5 = new SoundPlayer(s5);

player5.Play();

break;

case GameMode.Push:

BetMinusToolStripMenuItem1.Enabled = false;

BetPlusToolStripMenuItem.Enabled = false;

HitMeToolStripMenuItem.Enabled = false;

StayToolStripMenuItem.Text = "Distribution of cards";

StayToolStripMenuItem.Enabled = true;

MenuToolStripMenuItem.Text = "Menu";

MenuToolStripMenuItem.Enabled = true;

break;

}

modeValue = value;

this.Invalidate();

}

}

//We load the game objects:

public void init()

{

System.Reflection.Assembly asm =

System.Reflection.Assembly.GetExecutingAssembly();

loadingImage = new Bitmap(asm.GetManifestResourceStream(

"PocketJack.images.loading.gif"));

bankImage = new Bitmap(asm.GetManifestResourceStream(

"PocketJack.images.bank.jpg"));

mode = GameMode.LoadingDisplay;

this.Visible = true;

this.Refresh();

pot = new Pot();

//We create also initsializuy the help Form2 form:

helpForm = new Form2();

}

void startGame()

{

shoe = new CardShoe();

//We comment in the original,

//since this line – only for testing of a game:

//shoe =

//new CardShoe(new byte[] { 2, 14, 11, 25, 10, 7, 6, 5 });

pot.ResetPot();

mode = GameMode.PlacingBets;

}

void startHand()

{

mode = GameMode.PlacingBets;

}

void showPot()

{

this.Text =

"Bank: " + pot.PotValue.ToString() + " Bet: " +

pot.BetValue.ToString();

}

void startPlay()

{

//We commented out in the original:

//pot.DoPlaceBet();

//We write in the original:

if (mode == GameMode.PlayerBust && mode == GameMode.DealerWon)

pot.DoPlaceBet();

showPot();

// clear the hands

playerHand.Clear();

dealerHand.Clear();

// deal the face down hole card

dealerHoleCard = shoe.DealCard();

dealerHoleCard.FaceUp = false;

dealerHand.Add(dealerHoleCard);

// deal the first player card

playerHand.Add(shoe.DealCard());

// deal the second dealer card (face up)

dealerHand.Add(shoe.DealCard());

// deal the second player card

playerHand.Add(shoe.DealCard());

if ((dealerHand.BlackJackScoreHand() == 21) &&

(playerHand.BlackJackScoreHand() != 21))

{

//We write in the original:

pot.DoPlaceBet();

pot.HouseWins();

showPot();

//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();

dealerHoleCard.FaceUp = true;

mode = GameMode.DealerWon;

return;