예제 #1
0
        public void StartingMenu()
        {
            int        rowsInput, colsInput;
            eGameType  gameTypeInput;
            ExitOrCont exitOrCont = ExitOrCont.Continue;
            string     firstName, secondName = "pc";

            Console.WriteLine("Hello, Welcome to the game, please enter your name");
            GetValidName(out firstName);
            GetValidChoise(out gameTypeInput);
            while (exitOrCont != ExitOrCont.Exit)
            {
                GetValidBoardSize(out rowsInput, out colsInput);
                InitLetterArray(rowsInput, colsInput);
                if (gameTypeInput == eGameType.AgainstPlayer2)
                {
                    Console.WriteLine("Please enter second player name: ");
                    GetValidName(out secondName);
                }
                m_PlayGame = new PlayGame(firstName, secondName, rowsInput, colsInput, gameTypeInput);
                StartMoves(out exitOrCont);
                if (exitOrCont == ExitOrCont.Continue)
                {
                    GetValidExitOrCont(out exitOrCont);
                }
            }
            Console.WriteLine("Have a nice day");
        }
예제 #2
0
        private void GetValidTurn(out int o_Row, out int o_Col, out ExitOrCont o_ExitOrCont)
        {
            string turn;

            turn = Console.ReadLine();

            if (turn.Length >= 2)
            {
                o_Col = GetNumOfColFromChar(turn[0]);
                o_Row = GetNumOfRowFromChar(turn[1]);
            }
            else
            {
                o_Col = 0;
                o_Row = 0;
            }
            o_ExitOrCont = ExitOrCont.Continue;
            while ((!CheckValidFormatOfATurn(turn) || !m_PlayGame.CheckValidRowCol(o_Row, o_Col)) && turn != "Q")
            {
                Console.WriteLine("Wrong Input, please pick a right cell");
                turn = Console.ReadLine();
                if (turn != "Q")
                {
                    o_Col = GetNumOfColFromChar(turn[0]);
                    o_Row = GetNumOfRowFromChar(turn[1]);
                }
            }

            if (turn == "Q")
            {
                o_ExitOrCont = ExitOrCont.Exit;
            }
        }
예제 #3
0
        public void StartMoves(out ExitOrCont o_ExitOrCont)
        {
            eCurrentPlayer currPlayer = eCurrentPlayer.Player1;

            o_ExitOrCont = ExitOrCont.Continue;
            while (!m_PlayGame.IsEndOfGame() && o_ExitOrCont == ExitOrCont.Continue)
            {
                Ex02.ConsoleUtils.Screen.Clear();
                showBoard();
                if (currPlayer == eCurrentPlayer.Player1)
                {
                    TurnOfPlayer(currPlayer, out o_ExitOrCont);
                    currPlayer = eCurrentPlayer.Player2;
                }
                else if (m_PlayGame.GameType == eGameType.AgainstComp)
                {
                    TurnOfPc();
                    currPlayer = eCurrentPlayer.Player1;
                }
                else
                {
                    TurnOfPlayer(currPlayer, out o_ExitOrCont);
                    currPlayer = eCurrentPlayer.Player1;
                }
            }
            if (o_ExitOrCont == ExitOrCont.Continue)
            {
                WinnerDecleration();
            }
        }
예제 #4
0
 private void PlayerStepInputAndShowBoard(out int o_Row, out int o_Col, out ExitOrCont o_ExitOrCont)
 {
     GetValidTurn(out o_Row, out o_Col, out o_ExitOrCont);
     if (o_ExitOrCont == ExitOrCont.Continue)
     {
         m_PlayGame.MarkCell(o_Row, o_Col);
         Ex02.ConsoleUtils.Screen.Clear();
         showBoard();
     }
 }
예제 #5
0
        private void GetValidExitOrCont(out ExitOrCont o_UserChoiseExitOrCont)
        {
            int userInput;

            Console.WriteLine("Do you want to play another game? press 1 for yes and 2 for no ");
            int.TryParse(Console.ReadLine(), out userInput);
            while (!CheckIfValidChoise(userInput))
            {
                Console.WriteLine("Wrong Choise!");
                Console.WriteLine("Do you want to play another game? press 1 for yes and 2 for no ");
                int.TryParse(Console.ReadLine(), out userInput);
            }
            o_UserChoiseExitOrCont = (ExitOrCont)userInput;
        }
예제 #6
0
        private void TurnOfPlayer(eCurrentPlayer i_CurrPlayer, out ExitOrCont o_ExitOrCont)
        {
            //  string turn;
            int row1, col1, row2, col2;

            Console.WriteLine("Please enter the first card for " + i_CurrPlayer);
            PlayerStepInputAndShowBoard(out row1, out col1, out o_ExitOrCont);
            if (o_ExitOrCont == ExitOrCont.Continue)
            {
                Console.WriteLine("Please enter the second card");
                PlayerStepInputAndShowBoard(out row2, out col2, out o_ExitOrCont);

                if (m_PlayGame.AddPointsIfCorrectAns(row1, col1, row2, col2, i_CurrPlayer))
                {
                    Console.WriteLine("Congrats! Right Choise");
                }
                else
                {
                    Console.WriteLine("Not bad. Maybe Next Time");
                }
            }
            System.Threading.Thread.Sleep(2000);
        }