コード例 #1
0
ファイル: Form1.cs プロジェクト: fupazor/chess
        private void button1_Click(object sender, EventArgs e)
        {
            if (HowManyGames != 0)
            {
                for (int i = 0; i < 8; i++)
                {
                    for (int j = 0; j < 8; j++)
                    {
                        Controls.Remove(PB[i, j]);
                    }
                }
                for (int i = 0; i < 32; i++)
                {
                    arr.RemoveAt(0);
                }
            }
            hod  = 'W';
            faza = false;
            HowManyGames++;
            newfigures(arr, 'W');
            newfigures(arr, 'B');
            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    PB[i, j]             = new PictureBox();
                    PB[i, j].Location    = new Point(12 + 96 * (j), 12 + 96 * (i));
                    PB[i, j].BorderStyle = BorderStyle.None;
                    PB[i, j].Image       = imageW;

                    if (i == 1)
                    {
                        PB[i, j].Image = imageWP;
                    }
                    ;
                    if (i == 6)
                    {
                        PB[i, j].Image = imageBP;
                    }
                    ;
                    if (i == 0)
                    {
                        if (j == 0 || j == 7)
                        {
                            PB[i, j].Image = imageWL;
                        }
                        ;
                        if (j == 1 || j == 6)
                        {
                            PB[i, j].Image = imageWH;
                        }
                        ;
                        if (j == 2 || j == 5)
                        {
                            PB[i, j].Image = imageWE;
                        }
                        ;
                        if (j == 3)
                        {
                            PB[i, j].Image = imageWK;
                        }
                        ;
                        if (j == 4)
                        {
                            PB[i, j].Image = imageWQ;
                        }
                        ;
                    }
                    ;
                    if (i == 7)
                    {
                        if (j == 0 || j == 7)
                        {
                            PB[i, j].Image = imageBL;
                        }
                        ;
                        if (j == 1 || j == 6)
                        {
                            PB[i, j].Image = imageBH;
                        }
                        ;
                        if (j == 2 || j == 5)
                        {
                            PB[i, j].Image = imageBE;
                        }
                        ;
                        if (j == 3)
                        {
                            PB[i, j].Image = imageBK;
                        }
                        ;
                        if (j == 4)
                        {
                            PB[i, j].Image = imageBQ;
                        }
                        ;
                    }
                    ;
                    PB[i, j].Size   = new Size(90, 90);
                    PB[i, j].Click += new EventHandler(PBClick);
                    Controls.Add(PB[i, j]);
                }
            }
            RE.Left           = 800;
            RE.Top            = 100;
            RE.Text           = "отменить выбор фигуры";
            RE.Click         += new EventHandler(REClick);
            richTextBox1.Text = "Ход белых";
            richTextBox2.Text = "Фаза выбора фигуры";
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: fupazor/chess
        public void PBClick(object sender, EventArgs e)
        {
            int X = -1;
            int Y = -1;

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    if ((sender as PictureBox) == PB[i, j])
                    {
                        X = j; Y = i; break;
                    }
                }
                if (X != -1)
                {
                    break;
                }
            }

            //   MessageBox.Show(X.ToString());
            // MessageBox.Show(Y.ToString());
            if (faza == false && X != -1)
            {
                witch = Proverka.witch(X, Y, arr, hod);
                if (witch != -1)
                {
                    faza = true;
                    richTextBox2.Text = "Фаза перемещения фигуры";
                    Controls.Add(RE);
                }


                // arr[witch].vybor();
            }



            else if (faza == true && X != -1)
            {
                if (Proverka.mona(X, Y, arr, witch))
                {
                    (arr[witch] as Figure).HOD(X, Y, arr, PB);
                    if (hod == 'W')
                    {
                        richTextBox1.Text = "Ход Чёрных";
                        hod = 'B';
                    }
                    else
                    {
                        richTextBox1.Text = "Ход Белых";
                        hod = 'W';
                    }
                    richTextBox2.Text = "Фаза выбора фигуры";
                    witch             = -1;
                    faza = false;
                    Controls.Remove(RE);
                    for (int i = 0; i < 32; i++)
                    {
                        if ((arr[i] as Figure).name == 'K' && (arr[i] as Figure).alive == false)
                        {
                            if ((arr[i] as Figure).colore == 'W')
                            {
                                MessageBox.Show("Чёрные победили");
                            }
                            else
                            {
                                MessageBox.Show("Белые победили");
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Нельзя сделать такой ход");
                }
            }
        }