Exemplo n.º 1
0
        bool askForAMove(Player i_player, gameBoard i_board, out Pair i_nextMove)
        {
            string nextMoveAsString;
            //Pair nextMove;
            char col                = 'A';
            int  row                = 0;
            bool rowIsInt           = false;
            bool isFirstIteration   = true;
            bool toPlay             = true;
            bool invalidLengthInput = false;


            Console.WriteLine(string.Format(
                                  @"{0}, it's your turn!
Please choose 'letter'(column) and 'number'(row) for your next move.
The 'letter' must be an appercase and no space between row and col.
For example: 'E2'
<for 'EXIT' please insert 'Q'>", i_player.PlayerName));

            do
            {
                if (!isFirstIteration)
                {
                    invalidLengthInput = false;
                    Console.WriteLine("Sorry but You inserted invalid input! please try again:");
                }

                nextMoveAsString = Console.ReadLine();
                if (nextMoveAsString == "Q")
                {
                    toPlay = false;
                    break;
                }
                if (nextMoveAsString.Length != 2)
                {
                    invalidLengthInput = true;
                    isFirstIteration   = false;
                    continue;
                }
                col              = nextMoveAsString[0];
                rowIsInt         = int.TryParse(nextMoveAsString[1].ToString(), out row);
                isFirstIteration = false;
            } while (invalidLengthInput || !rowIsInt || col < 'A' || col > ('A' + i_board.Size - 1) || row < 1 || row > i_board.Size);

            i_nextMove = new Pair(row - 1, col - 'A');
            return(toPlay);
        }
Exemplo n.º 2
0
 public gameEngine(string i_player1, string i_player2, int i_boardSize)
 {
     m_player1 = new Player(eSymbolOfPlayer.O, i_player1);
     m_player2 = new Player(eSymbolOfPlayer.X, i_player2);
     m_board   = new gameBoard(i_boardSize);
 }
Exemplo n.º 3
0
        void showBoard(gameBoard i_board)
        {
            StringBuilder finalBoard   = new StringBuilder();
            StringBuilder borderOfRow  = new StringBuilder();
            StringBuilder rowOfLetters = new StringBuilder();

            char letter = 'A';

            rowOfLetters.Append("    ");
            for (int i = 0; i < i_board.Size; i++)
            {
                if (i == i_board.Size - 1)
                {
                    rowOfLetters.Append(string.Format("{0}  ", letter));
                }
                else
                {
                    rowOfLetters.Append(string.Format("{0}   ", letter));
                }
                letter++;
            }

            finalBoard.Append(rowOfLetters);
            finalBoard.Append(Environment.NewLine);

            int numOfEquals = ((i_board.Size * 4) + 1);

            borderOfRow.Append("  ");
            for (int i = 0; i < numOfEquals; i++)
            {
                borderOfRow.Append('=');
            }

            borderOfRow.Append(Environment.NewLine);

            StringBuilder rowWithBoardValues;

            for (int row = 0; row < i_board.Size; row++)
            {
                rowWithBoardValues = new StringBuilder();
                rowWithBoardValues.Append(borderOfRow);
                rowWithBoardValues.Append(string.Format("{0} ", (row + 1)));

                int col            = 0;
                int locationOfCoin = 2;
                for (int i = 0; i < numOfEquals; i++)
                {
                    if (i % 4 == 0)
                    {
                        rowWithBoardValues.Append("|");
                    }
                    else if (i == locationOfCoin)
                    {
                        if (i_board[row, col] != 0)
                        {
                            rowWithBoardValues.Append(i_board[row, col]);
                        }
                        else
                        {
                            rowWithBoardValues.Append(" ");
                        }
                        col++;
                        locationOfCoin += 4;
                    }
                    else
                    {
                        rowWithBoardValues.Append(" ");
                    }
                }
                finalBoard.Append(rowWithBoardValues);
                finalBoard.Append(Environment.NewLine);
            }

            finalBoard.Append(borderOfRow);
            Console.WriteLine(finalBoard);
        }