Exemplo n.º 1
0
 private void InsertIfPossible(KeyValuePair <int, int> state)// jeśli się da to funkcja doda hetmana na wskazane pole
 {
     if (state.Key >= 0 && state.Key < 8 && state.Value >= 0 && state.Value < 8)
     {
         ChessNode node = chessBoard[state.Key, state.Value];
         if (!node.isChecked && !node.Hetman)
         {
             node.Hetman = true;   // ustaw w danym miejscu hetmana
             Hetmani.Add(state);   // dodaj koordynaty do listy
             node.CheckAllSides(); // szachowanie pól po diagonalnych i wertykalnie/horyzontalnie
         }
     }
 }
Exemplo n.º 2
0
        public KeyValuePair <int, int> coords = new KeyValuePair <int, int>();                                            // koordynaty na szachownicy

        public ChessNode(int initialState, object parent) : base(initialState, parent)
        {
            _initialState = initialState;
            _parent       = null;
        }
Exemplo n.º 3
0
        public Hetman()
        {
            //1. stworzenie obiektu
            chessBoard = new ChessNode[8, 8];                   //szachownica
            Hetmani    = new List <KeyValuePair <int, int> >(); //lista koordynatów pola z hetmanem


            //2. wypełnienie tablicy "polami" typu ChessNode
            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    //3. Nadanie koordynatów dla każdego pola
                    chessBoard[i, j] = new ChessNode(0, null)
                    {
                        coords = new KeyValuePair <int, int>(i, j)
                    };
                }
            }


            //4. Ustawienie sąsiadów każdego pola. W przypadku, gdy próbuję sprawdzić element poza tablicą -> exception
            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    try
                    {
                        if (chessBoard[i - 1, j - 1] != null)
                        {
                            chessBoard[i, j].LeftUpper = chessBoard[i - 1, j - 1];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. LU");
                    }
                    try
                    {
                        if (chessBoard[i - 1, j] != null)
                        {
                            chessBoard[i, j].MiddleUpper = chessBoard[i - 1, j];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. MU");
                    }
                    try
                    {
                        if (chessBoard[i - 1, j + 1] != null)
                        {
                            chessBoard[i, j].RightUpper = chessBoard[i - 1, j + 1];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. RU");
                    }
                    try
                    {
                        if (chessBoard[i, j - 1] != null)
                        {
                            chessBoard[i, j].LeftMiddle = chessBoard[i, j - 1];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. LM");
                    }
                    try
                    {
                        if (chessBoard[i, j + 1] != null)
                        {
                            chessBoard[i, j].RightMiddle = chessBoard[i, j + 1];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. RM");
                    }
                    try
                    {
                        if (chessBoard[i + 1, j - 1] != null)
                        {
                            chessBoard[i, j].LeftLower = chessBoard[i + 1, j - 1];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. LL");
                    }
                    try
                    {
                        if (chessBoard[i + 1, j] != null)
                        {
                            chessBoard[i, j].MiddleLower = chessBoard[i + 1, j];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. ML");
                    }
                    try
                    {
                        if (chessBoard[i + 1, j + 1] != null)
                        {
                            chessBoard[i, j].RightLower = chessBoard[i + 1, j + 1];
                        }
                    }
                    catch
                    {
                        Debug.WriteLine("Exception: Bad Array Index" + i + " / " + j + "No. RL");
                    }
                }
            }
        }