Exemplo n.º 1
0
        public Square AvailableMove(Square i_CurrentSquare, Board i_GameBoard)
        {
            Square leftSqr, rightSqr;

            Square.eSquareType squareType;
            squareType = i_GameBoard.GetSquareStatus(i_CurrentSquare);

            if (squareType == Square.eSquareType.playerOneKing || squareType == Square.eSquareType.playerTwoKing)
            {
                leftSqr  = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.TopLeft);
                rightSqr = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.TopRight);
                if (i_GameBoard.GetSquareStatus(leftSqr) != Square.eSquareType.none && i_GameBoard.GetSquareStatus(rightSqr) != Square.eSquareType.none)
                {
                    leftSqr  = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.BottomLeft);
                    rightSqr = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.BottomRight);
                }
            }
            else if (squareType == Square.eSquareType.playerOne)
            {
                leftSqr  = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.TopLeft);
                rightSqr = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.TopRight);
            }
            else
            {
                leftSqr  = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.BottomLeft);
                rightSqr = i_GameBoard.GetSquareInDirection(i_CurrentSquare, Board.eDirection.BottomRight);
            }

            if (i_GameBoard.GetSquareStatus(leftSqr) == Square.eSquareType.none)
            {
                return(leftSqr);
            }
            else if (i_GameBoard.GetSquareStatus(rightSqr) == Square.eSquareType.none)
            {
                return(rightSqr);
            }
            else
            {
                return(null);
            }
        }
        private void printBoard(Board i_Board)
        {
            int  requiredSpaceForSquare = 4;
            char currentChar            = 'A';
            int  boardRow = 0;

            Console.Write(" ");

            for (int j = 0; j < i_Board.Size; j++)
            {
                Console.Write("  {0} ", currentChar++);
            }

            Console.WriteLine();
            currentChar = 'a';

            for (int i = 0; i < (i_Board.Size * 2) + 1; i++)
            {
                if (i % 2 == 0)
                {
                    for (int j = 0; j <= (i_Board.Size * requiredSpaceForSquare) + 1; j++)
                    {
                        Console.Write("=");
                    }
                }
                else
                {
                    Console.Write(currentChar++);

                    for (int j = 0; j < i_Board.Size; j++)
                    {
                        Console.Write("|");

                        string shape = i_Board.SquareToString(i_Board.GetSquareStatus(boardRow, j));
                        Console.Write(shape);
                    }

                    Console.Write("|");
                    boardRow++;
                }

                Console.WriteLine();
            }

            currentChar = 'a';
            Console.WriteLine();
        }