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

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

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

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

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

textual
Листинг программы
public partial class Form1 : Form
    {
        public int x_MouseDown, y_MouseDown;
        int Number;
        int[] arr = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
        
        
        public void Nolik(System.Windows.Forms.PictureBox PB, int Number)
        {
            Graphics g = PB.CreateGraphics();
            g.DrawEllipse(Pens.Blue, 5, 5, 90, 90);
            g.Dispose();
            arr[Number - 1] = 1;
        }
......
....
....
rivate void Form1_Load(object sender, EventArgs e)
        {
 
            Random rnd = new Random();
            int RandomNolik = rnd.Next(1, 9);
            switch (RandomNolik)
            {
                case 1:
                    Nolik(pictureBox1, RandomNolik);
                    break;
                case 2:
                    Nolik(pictureBox2, RandomNolik);
                    break;
                case 3:
                    Nolik(pictureBox3, RandomNolik);
                    break;
                case 4:
                    Nolik(pictureBox4, RandomNolik);
                    break;
                case 5:
                    Nolik(pictureBox5, RandomNolik);
                    break;
                case 6:
                    Nolik(pictureBox6, RandomNolik);
                    break;
                case 7:
                    Nolik(pictureBox7, RandomNolik);
                    break;
                case 8:
                    Nolik(pictureBox8, RandomNolik);
                    break;
                case 9:
                    Nolik(pictureBox9, RandomNolik);
                    break;
             
            }
            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)
            {
                
                MessageBox.Show("Выйграли синие!!");
            }
 
            /*
             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)
            {
                
                MessageBox.Show("Выйграли красные!!");
            } 
             */
        }
.....
....
....
 private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
           
            Graphics g = Graphics.FromHwnd(pictureBox1.Handle);
            g.DrawLine(Pens.Red, 10, 10, 90, 90);
            g.DrawLine(Pens.Red, 90, 10, 10, 90);
            g.Dispose();
           [U][B] arr[Number - 1] = -1;[/B][/U]  вот тут пытался присвоить  -1.
            
        }

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


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

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

10   голосов , оценка 3.8 из 5
Похожие ответы