Валерий Алексеевич Жарков

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


Скачать книгу

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

      showPot();

      return;

      }

      if (playerHand.BlackJackScoreHand() ==

      dealerHand.BlackJackScoreHand())

      {

      mode = GameMode.Push;

      pot.DoPushBet();

      showPot();

      return;

      }

      }

      void doLeftMenuKey()

      {

      switch (mode)

      {

      case GameMode.LoadingDisplay:

      break;

      case GameMode.PlacingBets:

      startPlay();

      break;

      case GameMode.PlayerActive:

      playerStays();

      break;

      case GameMode.PocketJack:

      case GameMode.PlayerWon:

      case GameMode.PlayerBust:

      case GameMode.DealerActive:

      case GameMode.DealerWon:

      case GameMode.DealerBust:

      case GameMode.Push:

      startHand();

      break;

      }

      }

      void doEnter()

      {

      switch (mode)

      {

      case GameMode.LoadingDisplay:

      break;

      case GameMode.PlacingBets:

      startPlay();

      break;

      case GameMode.PlayerActive:

      playerHits();

      break;

      case GameMode.PocketJack:

      case GameMode.PlayerWon:

      case GameMode.PlayerBust:

      case GameMode.DealerActive:

      case GameMode.DealerWon:

      case GameMode.DealerBust:

      case GameMode.Push:

      startHand();

      break;

      }

      }

      void doUp()

      {

      switch (mode)

      {

      case GameMode.PlacingBets:

      pot.DoIncreaseBet();

      showPot();

      this.Invalidate();

      break;

      }

      }

      void doDown()

      {

      switch (mode)

      {

      case GameMode.PlacingBets:

      pot.DoDecreaseBet();

      showPot();

      this.Invalidate();

      break;

      }

      }

      void showHelp()

      {

      helpForm.ShowDialog();

      }

      В панели Properties (для Form1) на вкладке Events дважды щёлкаем по имени события Load. Появившийся шаблон метода Form1_Load после записи нашего кода принимает следующий вид.

      Листинг 1.2. Метод для загрузки файлов объектов.

      private void Form1_Load(object sender, EventArgs e)

      {

      //We load the game objects:

      init();

      startGame();

      }

      В