コード例 #1
0
        public bool mona(int X, int Y, ArrayList arr)
        {
            if (Math.Abs(X - KX) <= 1 && Math.Abs(Y - KY) <= 1 && Proverka.witch(X, Y, arr, colore) == -1)
            {
                return(true);
            }

            return(false);
        }
コード例 #2
0
 public void HOD(int X, int Y, ArrayList arr, PictureBox[,] PB)
 {
     PB[KY, KX].Image = pole;
     PB[Y, X].Image   = icon;
     if (Proverka.isempty(X, Y, arr) == false)
     {
         int i = -1;
         i = Proverka.witch(X, Y, arr, 'W');
         if (i == -1)
         {
             i = Proverka.witch(X, Y, arr, 'B');
         }
         (arr[i] as Figure).alive = false;
     }
     KX = X; KY = Y;
 }
コード例 #3
0
 public bool mona(int X, int Y, ArrayList arr)
 {
     if (colore == 'W' && KY == 1 && (Y - KY) == 2 && KX == X && Proverka.isempty(X, Y, arr) && Proverka.isempty(X, Y - 1, arr))
     {
         return(true);
     }
     if (colore == 'W' && KX == X && (Y - KY) == 1 && Proverka.isempty(X, Y, arr))
     {
         return(true);
     }
     if (colore == 'W' && Math.Abs(X - KX) == 1 && (Y - KY) == 1 && Proverka.isempty(X, Y, arr) == false)
     {
         int i = -1;
         i = Proverka.witch(X, Y, arr, 'W');
         if (i == -1)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     if (colore == 'B' && KY == 6 && (KY - Y) == 2 && KX == X && Proverka.isempty(X, Y, arr))
     {
         return(true);
     }
     if (colore == 'B' && KX == X && (KY - Y) == 1 && Proverka.isempty(X, Y, arr))
     {
         return(true);
     }
     if (colore == 'B' && Math.Abs(X - KX) == 1 && (KY - Y) == 1 && Proverka.isempty(X, Y, arr) == false)
     {
         int i = -1;
         i = Proverka.witch(X, Y, arr, 'B');
         if (i == -1)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     return(false);
 }
コード例 #4
0
        public bool mona(int X, int Y, ArrayList arr)
        {
            if (X > KX && Y == KY)
            {
                int i;
                for (i = KX + 1; i < X; i++)
                {
                    if (Proverka.isempty(i, Y, arr) == false)
                    {
                        break;
                    }
                }
                if (i == X && Proverka.witch(X, Y, arr, colore) == -1)
                {
                    return(true);
                }
            }

            if (X < KX && Y == KY)
            {
                int i;
                for (i = X + 1; i < KX; i++)
                {
                    if (Proverka.isempty(i, Y, arr) == false)
                    {
                        break;
                    }
                }
                if (i == KX && Proverka.witch(X, Y, arr, colore) == -1)
                {
                    return(true);
                }
            }
            if (Y > KY && X == KX)
            {
                int i;
                for (i = KY + 1; i < Y; i++)
                {
                    if (Proverka.isempty(X, i, arr) == false)
                    {
                        break;
                    }
                }
                if (i == Y && Proverka.witch(X, Y, arr, colore) == -1)
                {
                    return(true);
                }
            }
            if (Y < KY && X == KX)
            {
                int i;
                for (i = Y + 1; i < KY; i++)
                {
                    if (Proverka.isempty(X, i, arr) == false)
                    {
                        break;
                    }
                }
                if (i == KY && Proverka.witch(X, Y, arr, colore) == -1)
                {
                    return(true);
                }
            }



            return(false);
        }
コード例 #5
0
 public bool mona(int X, int Y, ArrayList arr)
 {
     if (Math.Abs(X - KX) == Math.Abs(Y - KY))
     {
         if (X > KX && Y > KY)
         {
             int i;
             for (i = 1; i + KX < X; i++)
             {
                 if (Proverka.isempty(KX + i, KY + i, arr) == false)
                 {
                     break;
                 }
             }
             if (i + KX == X && Proverka.witch(X, Y, arr, colore) == -1)
             {
                 return(true);
             }
         }
         if (X < KX && Y < KY)
         {
             int i;
             for (i = 1; i + X < KX; i++)
             {
                 if (Proverka.isempty(KX - i, KY - i, arr) == false)
                 {
                     break;
                 }
             }
             if (i + X == KX && Proverka.witch(X, Y, arr, colore) == -1)
             {
                 return(true);
             }
         }
         if (X > KX && Y < KY)
         {
             int i;
             for (i = 1; i + KX < X; i++)
             {
                 if (Proverka.isempty(KX + i, KY - i, arr) == false)
                 {
                     break;
                 }
             }
             if (i + KX == X && Proverka.witch(X, Y, arr, colore) == -1)
             {
                 return(true);
             }
         }
         if (X < KX && Y > KY)
         {
             int i;
             for (i = 1; i + X < KX; i++)
             {
                 if (Proverka.isempty(KX - i, KY + i, arr) == false)
                 {
                     break;
                 }
             }
             if (i + X == KX && Proverka.witch(X, Y, arr, colore) == -1)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #6
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("Нельзя сделать такой ход");
                }
            }
        }