Пример #1
0
 // Metoda pro ohodnocení možného tahu
 public void EvaluateMove(int row, int col, int newRow, int newCol, GameBoard board, out int moveResult)
 {
     if (board.Position(newRow, newCol) == (int)GameConstants.States.empty)
     {
         /*
          * Console.WriteLine("Moved");
          * board[newRow, newCol] = board[row, col];
          * Empty(row, col);
          */
         board.Move(row, col, newRow, newCol);
         moveResult = (int)GameConstants.MoveResult.Moved;
     }
     else if (board.Occupied(newRow, newCol) && board.Enemy(row, col, newRow, newCol))
     {
         /*
          * Console.WriteLine("Freezed");
          * Freeze(newRow, newCol);
          * Empty(row, col);
          */
         board.Freeze(row, col, newRow, newCol);
         moveResult = (int)GameConstants.MoveResult.Frozen;
     }
     else
     {
         moveResult = (int)GameConstants.MoveResult.Fail;
     }
 }
Пример #2
0
        // Metody pro zjištění všech možných tahů
        public static List <List <int> > Adjacted(int row, int col, GameBoard board)
        {
            var listAdjacted = new List <List <int> >(8);

            for (int dx = -1; dx <= 1; ++dx)
            {
                for (int dy = -1; dy <= 1; ++dy)
                {
                    if (dx != 0 || dy != 0)
                    {
                        int        newRow = row + dx;
                        int        newCol = col + dy;
                        List <int> xy     = new List <int> {
                            row, col, board.Position(row, col), newRow, newCol, board.Position(newRow, newCol)
                        };
                        listAdjacted.Add(xy);
                    }
                }
            }
            return(listAdjacted);
        }
Пример #3
0
        // selekce pozic pro provedení tahu
        public async Task Selection(int row, int col, GameBoard board, CancellationTokenSource source)
        {
            if (StartPositionSelected)  // je vybrána počáteční pozice
            {
                PlayerMove[(int)GameConstants.MoveParts.newRow]      = row;
                PlayerMove[(int)GameConstants.MoveParts.newCol]      = col;
                PlayerMove[(int)GameConstants.MoveParts.newPosition] = board.Position(row, col);

                StartPositionSelected = false;

                await TryToPlay(board, source); // zkusí zahrát zvolený tah
            }
            else if (!StartPositionSelected)    // není vybrána počáteční pozice
            {
                if (Owner(row, col, board))     // správná barva figurek
                {
                    PlayerMove[(int)GameConstants.MoveParts.row]   = row;
                    PlayerMove[(int)GameConstants.MoveParts.col]   = col;
                    PlayerMove[(int)GameConstants.MoveParts.piece] = board.Position(row, col);
                    StartPositionSelected = true;
                }
            }
        }