Литмир - Электронная Библиотека
A
A

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

10
{"b":"813669","o":1}