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;
}
mode = GameMode.PlayerActive;
}
Font messageFont = new Font(FontFamily.GenericSansSerif, 20,
FontStyle.Regular);
void paintForm(Graphics g)
{
switch (mode)
{
case GameMode.LoadingDisplay:
//We draw all images below the menu:
g.DrawImage(
bankImage, 0, StayToolStripMenuItem.Height);
g.DrawImage(
loadingImage, 0, StayToolStripMenuItem.Height + 60);
break;
case GameMode.PlacingBets:
g.DrawImage(bankImage, 0, StayToolStripMenuItem.Height);
Utilities.BigText("Bank : " + pot.PotValue.ToString(),
10, 40, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText("Bet : " +
pot.BetValue.ToString(), 10, 80, Color.Black,
Color.Yellow, messageFont, g);
break;
case GameMode.PlayerActive:
dealerHand.DrawHand(g, 10, 30, 80, 25);
playerHand.DrawHand(g, 10, 135, 20, 25);
Utilities.BigText(playerHand.BlackJackScoreHand().
ToString(), 140, 150, Color.Black,
Color.Yellow, messageFont, g);
break;
case GameMode.PlayerWon:
case GameMode.PocketJack:
dealerHand.DrawHand(g, 10, 30, 20, 25);
playerHand.DrawHand(g, 10, 135, 20, 25);
Utilities.BigText(dealerHand.BlackJackScoreHand().
ToString(), 140, 45, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText(playerHand.BlackJackScoreHand().
ToString(), 140, 150, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText("Вы выиграли!",
20, 80, Color.Black, Color.Yellow, messageFont, g);
break;
case GameMode.PlayerBust:
dealerHand.DrawHand(g, 10, 30, 80, 25);
playerHand.DrawHand(g, 10, 135, 20, 25);
Utilities.BigText(playerHand.BlackJackScoreHand().
ToString(), 140, 150, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText("Вы перебрали.",
20, 80, Color.Black, Color.Red, messageFont, g);
break;
case GameMode.DealerActive:
dealerHand.DrawHand(g, 10, 30, 20, 25);
playerHand.DrawHand(g, 10, 135, 20, 25);
Utilities.BigText(dealerHand.BlackJackScoreHand().
ToString(), 140, 45, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText(playerHand.BlackJackScoreHand().
ToString(), 140, 150, Color.Black,
Color.Yellow, messageFont, g);
break;
case GameMode.DealerWon:
dealerHand.DrawHand(g, 10, 30, 20, 25);
playerHand.DrawHand(g, 10, 135, 20, 25);
Utilities.BigText(dealerHand.BlackJackScoreHand().
ToString(), 140, 45, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText(playerHand.BlackJackScoreHand().
ToString(), 140, 150, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText("Вы потеряли.",
20, 80, Color.Black, Color.Red, messageFont, g);
break;
case GameMode.DealerBust:
dealerHand.DrawHand(g, 10, 30, 20, 25);
playerHand.DrawHand(g, 10, 135, 20, 25);
Utilities.BigText(dealerHand.BlackJackScoreHand().
ToString(), 140, 45, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText(playerHand.BlackJackScoreHand().
ToString(), 140, 150, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText("Dealer Bust",
20, 80, Color.Black, Color.Yellow, messageFont, g);
break;
case GameMode.Push:
dealerHand.DrawHand(g, 10, 30, 20, 25);
playerHand.DrawHand(g, 10, 135, 20, 25);
Utilities.BigText(dealerHand.BlackJackScoreHand().
ToString(), 140, 45, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText(playerHand.BlackJackScoreHand().
ToString(), 140, 150, Color.Black,
Color.Yellow, messageFont, g);
Utilities.BigText("Вы выиграли.",
20, 80, Color.Black, Color.Yellow, messageFont, g);
break;
}
}
void playerHits()
{
if (playerHand.BlackJackScoreHand() < 21)
{
playerHand.Add(shoe.DealCard());
if (playerHand.BlackJackScoreHand() > 21)
{
//We write in the original:
pot.DoPlaceBet();
pot.HouseWins();
showPot();
mode = GameMode.PlayerBust;
}
this.Invalidate();
}
}
void playerStays()
{
dealerHoleCard.FaceUp = true;
mode = GameMode.DealerActive;
this.Refresh();
System.Threading.Thread.Sleep(750);
while (dealerHand.BlackJackScoreHand() < 17)
{
dealerHand.Add(shoe.DealCard());
this.Refresh();
System.Threading.Thread.Sleep(750);
}
if (dealerHand.BlackJackScoreHand() > 21)
{
mode = GameMode.DealerBust;
pot.PlayerWins();
showPot();
return;
}
if (playerHand.BlackJackScoreHand() >
dealerHand.BlackJackScoreHand())
{
mode = GameMode.PlayerWon;
pot.PlayerWins();
showPot();
return;
}
if (playerHand.BlackJackScoreHand() <
dealerHand.BlackJackScoreHand())
{
mode = GameMode.DealerWon;
//We write in the original:
pot.DoPlaceBet();
pot.HouseWins();