private string toStringBoard() // Checked
        {
            char          space          = ' ';
            StringBuilder resultedString = new StringBuilder($"{space}{space}");

            for (int col = 1; col < this.m_Game.GameBoard.Size; col++)
            {
                resultedString.Append($"{col}");
                resultedString.Append(space, 3);
            }

            resultedString.AppendLine();
            for (int row = 1; row < this.m_Game.GameBoard.Size; row++)
            {
                resultedString.Append($"{row}|");
                for (int col = 1; col < this.m_Game.GameBoard.Size; col++)
                {
                    ePlayersMark currentSign = this.m_Game.GameBoard.GameBoard[row, col];
                    char         currentChar = k_Empty;
                    if (currentSign == ePlayersMark.Player1)
                    {
                        currentChar = k_Cross;
                    }
                    else if (currentSign == ePlayersMark.Player2)
                    {
                        currentChar = k_Circle;
                    }

                    resultedString.Append($" {currentChar} |");
                }

                resultedString.AppendLine();
                resultedString.Append(space);
                for (int col = 1; col < this.m_Game.GameBoard.Size; col++)
                {
                    // 1-5 2-9 3-13 4-17 5-21 --> 1=5 2=5+4 3=5+4+3 4=5+4+3+2
                    resultedString.Append('=', 4);
                }

                resultedString.Append('=');
                resultedString.AppendLine();
            }

            return(resultedString.ToString());
        }
        private void updateTheUserInterfaceAccordingTheState() // Checked
        {
            eGameState   currentState    = this.m_Game.CurrentGameState;
            ePlayersMark signOfTheWinner = this.m_Game.WinnerPlayer.Sign;

            if (currentState == Win)
            {
                printWinMessage(signOfTheWinner);
            }
            else if (currentState == Tie)
            {
                printTieMessage();
            }
            else if (currentState == Quit)
            {
                printQuitMessage(signOfTheWinner);
            }

            printScore();
        }
        internal (int, int) GetValidPointFromUser(ePlayersMark i_PlayerMarkSign) // Checked
        {
            bool isValidPoint = false;
            int  row          = 0;
            int  column       = 0;

            Console.WriteLine(
                $@"{i_PlayerMarkSign}! Its your turn now! 
Please enter one digit number as row and then column for your next move :");

            while (!isValidPoint)
            {
                Console.WriteLine($"{i_PlayerMarkSign} : Please enter row number:");
                row = getValidNumberInBoardRangeFromUser();
                if (row == -1)
                {
                    column = -1;

                    break;
                }

                Console.WriteLine($"{i_PlayerMarkSign} : Please enter column number:");
                column = getValidNumberInBoardRangeFromUser();
                if (column == -1)
                {
                    row = -1;

                    break;
                }

                isValidPoint = this.m_Game.IsEmptySpot(row, column);
                if (isValidPoint == false)
                {
                    Console.WriteLine(
                        $@"{i_PlayerMarkSign} : Sorry, this spot is not empty. Please choose a new one! 
REMINDER: choose one digit number as ROW and then COLUMN in valid range size, for your next move");
                }
            }

            return(row, column);
        }
 private static void printQuitMessage(ePlayersMark i_SignOfTheWinner)
 {
     Console.WriteLine($"You Quit from the Game! The winner in this round is : {i_SignOfTheWinner}");
 }
 private static void printWinMessage(ePlayersMark i_SignOfTheWinner)
 {
     Console.WriteLine($"Well done! The winner in this round is : {i_SignOfTheWinner}");
 }
Esempio n. 6
0
 public Player(ePlayersMark i_Sign, bool i_IsComputer)
 {
     r_Sign         = i_Sign;
     r_IsComputer   = i_IsComputer;
     m_NumberOfWins = 0;
 }