Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 8: Программирование на Visual C# искусственного интеллекта. Издание 2. Продолжение 1
Шрифт:
player3.Play;
break;
case GameMode.DealerActive:
BetMinusToolStripMenuItem1.Enabled = false;
BetPlusToolStripMenuItem.Enabled = false;
HitMeToolStripMenuItem.Enabled = false;
StayToolStripMenuItem.Text = "Distribution of cards";
StayToolStripMenuItem.Enabled = false;
MenuToolStripMenuItem.Text = "Menu";
MenuToolStripMenuItem.Enabled = true;
break;
case GameMode.DealerWon:
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 a4 = Assembly.GetExecutingAssembly;
Stream s4 =
a4.GetManifestResourceStream(
"PocketJack.pj_busted.wav");
SoundPlayer player4 = new SoundPlayer(s4);
player4.Play;
break;
case GameMode.DealerBust:
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 a5 = Assembly.GetExecutingAssembly;
Stream s5 =
a5.GetManifestResourceStream(
"PocketJack.pj_claps.wav");
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;
}
if ((playerHand.BlackJackScoreHand == 21) &&
(dealerHand.BlackJackScoreHand != 21))
{
pot.PlayerWins;
showPot;
dealerHoleCard.FaceUp = true;
mode = GameMode.PocketJack;
return;
}
if ((playerHand.BlackJackScoreHand == 21) &&
(dealerHand.BlackJackScoreHand == 21))
{
pot.DoPushBet;
showPot;
dealerHoleCard.FaceUp = true;
mode = GameMode.Push;
return;