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

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


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

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

      }

      В панели Properties (для Form1) на вкладке Events дважды щёлкаем по имени события Paint. Появившийся шаблон метода Form1_Paint после записи нашего кода принимает следующий вид. Напомним, что другие варианты вывода изображения, например, на элемент управления PictureBox и после щелчка по какому-либо элементу управления уже приводились ранее.

      Листинг 1.3. Метод для рисования изображений.

      private void Form1_Paint (object sender, PaintEventArgs e)

      {

      paintForm(e.Graphics);

      }

      Для задания режимов и управления игрой воспользуемся каким-либо элементом управления или компонентом. Как и выше, с панели инструментов Toolbox переносим на форму компонент MenuStrip и щёлкаем по нему (ниже формы в режиме проектирования). На форме Form1 появляются окна с надписью Type Here, в которые записываем команды (по второму варианту, можно записывать в панели Properties в свойстве Text): Stay, Menu, Exit, HitMe, BetPlus, BetMinus, Sound, Help, рис. 1.30. Для команды, слева от которой поставлен флажок, в панели Properties для этой команды значение Checked следует задать как True.

      Рис. 1.30. Команды элемента управления MenuStrip.

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

      Листинг 1.4. Метод для приостановки игры.

      private void StayToolStripMenuItem_Click (object sender, EventArgs e)

      {

      doLeftMenuKey ();

      }

      Аналогично дважды щёлкаем по команде Exit. Появившийся шаблон метода после записи нашего кода принимает следующий вид.

      Листинг 1.5. Метод для окончания игры.

      private void ExitToolStripMenuItem_Click (object sender, EventArgs e)

      {

      Application. Exit ();

      }

      Аналогично дважды щёлкаем по команде «Hit Me». Появившийся шаблон метода после записи нашего кода принимает следующий вид.

      Листинг 1.6. Метод для выдачи карты игроку.

      private void HitMeToolStripMenuItem_Click (object sender, EventArgs e)

      {

      playerHits ();

      }

      Аналогично дважды щёлкаем по команде «BetPlus». Появившийся шаблон метода после записи нашего кода принимает следующий вид.

      Листинг