Эротические рассказы

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

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


Скачать книгу
[1] ==

      mark [2] && mark [0]!= «»)

      {

      // we have a winner

      winner = mark [0];

      for (int j = 0; j <3; j++)

      boxArray[boxNumber[j]].BackColor =

      Color.Red;

      }

      }

      return (winner);

      }

      private void ComputerTurn ()

      {

      int selectedBox;

      int i, n;

      int j, k;

      String computerMark, playerMark, markToFind;

      int [] boxNumber = new int [3];

      String [] mark = new String [3];

      int emptyBox;

      int [] bestMoves = {4, 0, 2, 6, 8, 1, 3, 5, 7};

      if (rdoRandom.Checked)

      {

      // random logic

      // put mark in Nth available square

      n = myRandom.Next (9 – numberClicks) +1;

      i = 0;

      for (selectedBox = 0; selectedBox <9;

      selectedBox++)

      {

      if (boxArray [selectedBox].Text == «»)

      i++;

      if (i == n)

      break;

      }

      // put mark in SelectedBox

      lblBox_Click (boxArray [selectedBox], null);

      }

      else

      {

      // smart computer

      // determine who has what mark

      if (rdoComputerFirst.Checked)

      {

      computerMark = «X»;

      playerMark = «O»;

      }

      else

      {

      computerMark = «O»;

      playerMark = «X»;

      }

      // Step 1 (K = 1) – check for win —

      // see if two boxes hold

      // computer mark and one is empty

      // Step 2 (K = 2) – check for block —

      // see if two boxes hold

      // player mark and one is empty

      for (k = 1; k <= 2; k++)

      {

      if (k == 1)

      markToFind = computerMark;

      else

      markToFind = playerMark;

      for (i = 0; i <8; i++)

      {

      n = 0;

      emptyBox = 0;

      for (j = 0; j <3; j++)

      {

      boxNumber [j] = Convert.ToInt32 (

      possibleWins[i][j].ToString ());

      mark [j] = boxArray [boxNumber [j]].Text;

      if (mark [j] == markToFind)

      n++;

      else if (mark [j] == «»)

      emptyBox = boxNumber [j];

      }

      if (n == 2 && emptyBox!= 0)

      {

      // mark empty box to win (K = 1) or

      // block (K = 2)

      lblBox_Click (boxArray [emptyBox], null);

      return;

      }

      }

      }

      // Step 3 – find next best move

      for (i = 0; i <9; i++)

      {

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

      {

      lblBox_Click (boxArray [bestMoves [i]], null);

      return;

      }

      }

      }

      }

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

      Листинг 11.2. Метод.

      private void frmTicTacToe_Load (object sender, EventArgs e)

      {

      //’establish array

      boxArray [0] = lblBox1;

      boxArray [1] = lblBox2;

      boxArray [2] = lblBox3;

      boxArray [3] = lblBox4;

      boxArray [4] = lblBox5;

      boxArray [5] = lblBox6;

      boxArray [6] = lblBox7;

      boxArray [7] = lblBox8;

      boxArray [8] = lblBox9;

      // possible wins

      possibleWins [0] = «012»;

      possibleWins [1] = «345»;

      possibleWins [2] = «678»;

      possibleWins [3] = «036»;

      possibleWins [4] = «147»;

      possibleWins [5] = «258»;

      possibleWins [6] = «048»;

      possibleWins [7] = «246»;

      // clear boxes

      for (int i = 0; i <9; i++)

      boxArray [i].Text = «»;

      lblMessage. Text = «Game Stopped»;

      grpFirst. Enabled = false;

      grpComputer. Enabled = false;

      //drawSound = new System.Media.SoundPlayer (

      //Application.StartupPath + "\\beep. wav»);

      //winSound = new System.Media.SoundPlayer (

      //Application.StartupPath + "\\tada. wav»);

      }

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

      Листинг 11.3. Метод.

      private


Скачать книгу
Яндекс.Метрика