Создание игры крестики нолики - C#

Узнай цену своей работы

Формулировка задачи:

Возникла проблема при создание игры крестики нолики. В форме имеется 9 Picturebox-ов(3на3) При нажатие на один из них левой кнопкой рисуется крестик, правой нолик. Если в Picturebox1 при нажатием левой кнопкой мыши нарисовался рисунок, нужно сделать так чтобы при нажатие снова на этот же Picturebox1 в нем ничего больше не рисовалось, и чтобы нельзя было нажать на левую кнопку мыши пока не нажмеш на правую(пока не поставиш нолик). Подскажите как можно это сделать.

Решение задачи: «Создание игры крестики нолики»

textual
Листинг программы
  1. public partial class Form1 : Form
  2.     {
  3.         public int x_MouseDown, y_MouseDown;
  4.         int Number;
  5.         int[] arr = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  6.        
  7.        
  8.         public void Nolik(System.Windows.Forms.PictureBox PB, int Number)
  9.         {
  10.             Graphics g = PB.CreateGraphics();
  11.             g.DrawEllipse(Pens.Blue, 5, 5, 90, 90);
  12.             g.Dispose();
  13.             arr[Number - 1] = 1;
  14.         }
  15. ......
  16. ....
  17. ....
  18. rivate void Form1_Load(object sender, EventArgs e)
  19.         {
  20.  
  21.             Random rnd = new Random();
  22.             int RandomNolik = rnd.Next(1, 9);
  23.             switch (RandomNolik)
  24.             {
  25.                 case 1:
  26.                     Nolik(pictureBox1, RandomNolik);
  27.                     break;
  28.                 case 2:
  29.                     Nolik(pictureBox2, RandomNolik);
  30.                     break;
  31.                 case 3:
  32.                     Nolik(pictureBox3, RandomNolik);
  33.                     break;
  34.                 case 4:
  35.                     Nolik(pictureBox4, RandomNolik);
  36.                     break;
  37.                 case 5:
  38.                     Nolik(pictureBox5, RandomNolik);
  39.                     break;
  40.                 case 6:
  41.                     Nolik(pictureBox6, RandomNolik);
  42.                     break;
  43.                 case 7:
  44.                     Nolik(pictureBox7, RandomNolik);
  45.                     break;
  46.                 case 8:
  47.                     Nolik(pictureBox8, RandomNolik);
  48.                     break;
  49.                 case 9:
  50.                     Nolik(pictureBox9, RandomNolik);
  51.                     break;
  52.              
  53.             }
  54.             if (arr[0] == 1 && arr[1] == 1 && arr[2] == 1 || arr[3] == 1 && arr[4] == 1 && arr[5] == 1 || arr[6] == 1 && arr[7] == 1 && arr[8] == 1 || arr[0] == 1 && arr[3] == 1 && arr[6] == 1 || arr[1] == 1 && arr[4] == 1 && arr[7] == 1 || arr[2] == 1 && arr[5] == 1 && arr[8] == 1 || arr[0] == 1 && arr[4] == 1 && arr[8] == 1 || arr[2] == 1 && arr[4] == 1 && arr[6] == 1)
  55.             {
  56.                
  57.                 MessageBox.Show("Выйграли синие!!");
  58.             }
  59.  
  60.             /*
  61.              if (arr[0] == 1 && arr[1] == 1 && arr[2] == 1 || arr[3] == 1 && arr[4] == 1 && arr[5] == 1 || arr[6] == 1 && arr[7] == 1 && arr[8] == 1 || arr[0] == 1 && arr[3] == 1 && arr[6] == 1 || arr[1] == 1 && arr[4] == 1 && arr[7] == 1 || arr[2] == 1 && arr[5] == 1 && arr[8] == 1 || arr[0] == 1 && arr[4] == 1 && arr[8] == 1 || arr[2] == 1 && arr[4] == 1 && arr[6] == 1)
  62.             {
  63.                
  64.                 MessageBox.Show("Выйграли красные!!");
  65.             }
  66.              */
  67.         }
  68. .....
  69. ....
  70. ....
  71.  private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
  72.         {
  73.            
  74.             Graphics g = Graphics.FromHwnd(pictureBox1.Handle);
  75.             g.DrawLine(Pens.Red, 10, 10, 90, 90);
  76.             g.DrawLine(Pens.Red, 90, 10, 10, 90);
  77.             g.Dispose();
  78.            [U][B] arr[Number - 1] = -1;[/B][/U]  вот тут пытался присвоить  -1.
  79.            
  80.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы