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

Читать онлайн книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 2: Программирование на Visual C# искусственного интеллекта (продолжение 1) - Валерий Алексеевич Жарков страница 5

СКАЧАТЬ приняла вид, показанный на рис. 11.8.

      Рис. 11.8. Форма Form1 после проектирования.

      Выделяем элемент управления lblBox1, в панели Properties для этого элемента на вкладке Events выделяем событие Click, щёлкаем стрелку и из выпавшего списка выбираем событие lblBox1_Click (рис. 11.9).

      Аналогично поступаем для остальных элементов управления lblBox2, lblBox3, lblBox4, lblBox5, lblBox6, lblBox7, lblBox8, lblBox9.

      Рис. 11.9. Выделяем lblBox1 и выбираем событие lblBox1_Click.

      На рис. 11.12 слева – сетка для игры Tic Tac Toe. Элементы управления Label имеются в большом количестве. Элемент управления Label используется, чтобы сказать Вам ситуацию в игре. Метки используются для маркировки X и O в сетке (несмотря на то, что только X показывают в этом режиме проектирования). Тонкие элементы управления Label используются для формирования тёмно-синей сетки. Справа три средства управления GroupBox и две Button. Каждый GroupBox содержит два средства управления типа переключателя RadioButton, используемые для установления игровых опций. Эти два кнопочных управления Button используются, чтобы запустить и остановить игру и выйти из программы.

      Если в игре применяются звуковые файлы, то их можно разместить в одной папке с именем, например, Sounds, а можно разместить непосредственно в проект. Добавляем в проект звуковые файлы beep. wav и tada. wav по стандартной схеме: выполняем правый щелчок по имени проекта, в контекстном меню выбираем Add, Existing Item, в панели Add Existing Item в окне «Files of type» выбираем «All Files», в центральном окне находим (в папке файлы, например, из Интернета) и с нажатой клавишей Ctrl выделяем имена файлов и щёлкаем кнопку Add. В панели Solution Explorer мы увидим эти файлы (рис. 11.10).

      Дважды щёлкая по имени файла в панели Solution Explorer, любой файл можно открыть, изучить и редактировать.

      Схема записи и вывода справочной информации, например, с правилами игры после выбора команды Справка (например, для элемента управления MenuStrip) уже была дана в другой главе, а также в книгах с сайта ZharkovPress.ru.

      Рис. 11.10. Панели Solution Explorer (слева) и Properties (справа).

      11.4. Код и запуск программы

      Открываем файл Form1.cs (например, по схеме: File, Open, File) и в классе Form1 записываем следующие переменные и методы.

      Листинг 11.1. Переменные и методы.

      Random myRandom = new Random ();

      Label [] boxArray = new Label [9];

      bool xTurn;

      bool canClick = false;

      int numberClicks;

      String [] possibleWins = new String [8];

      bool gameOver;

      //System.Media.SoundPlayer drawSound;

      //System.Media.SoundPlayer winSound;

      private void lblBox_Click (object sender, EventArgs e)

      {

      String whoWon = «»;

      int i;

      if (canClick)

      {

      // see which box is clicked

      Label clickedBox;

      clickedBox = (Label) sender;

      // last digit of name (-1) is index

      i = Convert.ToInt32(clickedBox.Name [

      clickedBox.Name. Length – 1].ToString ()) – 1;

      // if already clicked then exit

      if (boxArray [i].Text!= «»)

      return;

      numberClicks++;

      if (xTurn)

      {

      boxArray [i].Text = «X»;

      xTurn = false;

      lblMessage. Text = «O’s Turn»;

      }

      else

      {

      boxArray [i].Text = «O»;

      xTurn = true;

      lblMessage. Text = «X’s Turn»;

      }

      // check for win – will establish a value for WhoWon

      whoWon = CheckForWin ();

      if (whoWon!= «»)

      {

      //winSound.Play ();

      lblMessage. Text = whoWon + " wins!»;

      gameOver = true;

      btnStartStop.PerformClick ();

      return;

      }

      else СКАЧАТЬ