コード例 #1
0
        private int RunGame()
        {
            int winner = 0;

            while (!isWinner)
            {
                if (currentTurn == 9)
                {
                    break;
                }

                UpdateBoard();
                ChangeTurns();
                DrawGame();

                isWinner = WinChecker.CheckForWinner(board);
            }

            if (isWinner)
            {
                ChangeTurns();
                winner = CurrentTurnPlayer;
            }


            return(winner);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: TN-10/projeto1lp1
        static void Main(string[] args)
        {
            Board      board      = new Board();
            WinChecker winChecker = new WinChecker();
            Renderer   renderer   = new Renderer();
            Player     player1    = new Player();
            Player     player2    = new Player();

            while (!winChecker.IsDraw(board) && winChecker.Check(board) == State.Undecided)
            {
                renderer.Render(board);

                Position nextMove;
                if (board.NextTurn == State.X)
                {
                    nextMove = player1.GetPosition(board);
                }
                else
                {
                    nextMove = player2.GetPosition(board);
                }

                if (!board.SetState(nextMove, board.NextTurn))
                {
                    Console.WriteLine("That is not a legal move.");
                }
            }

            renderer.Render(board);
            renderer.RenderResults(winChecker.Check(board));

            Console.ReadKey();
        }
コード例 #3
0
 public Game()
 {
     _board      = new Board();
     _winChecker = new WinChecker(_board);
     _renderer   = new Renderer(_board);
     _x          = new Player();
     _o          = new Player();
 }
コード例 #4
0
 public TicTacToeGame(BasePlayer player1, BasePlayer player2)
 {
     _player1      = player1;
     _player2      = player2;
     _currentBoard = Enumerable.Repeat(PlayerGlyph.Empty, 9).ToArray();
     _player1Turn  = true;
     _winChecker   = new WinChecker();
 }
コード例 #5
0
 static void Main(string[] args)
 {
     Console.WindowWidth  = 75;
     Console.WindowHeight = 35;
     playingBoard         = new Board();
     while (WinChecker.Win == false)
     {
         Turn();
         renderGame = new Renderer();
         winCheck   = new WinChecker();
     }
 }
コード例 #6
0
        static void Main(string[] args)
        {
            var    field   = new Field();
            Player player1 = new HumanPlayer('X');
            Player player2 = new CPUPlayer('O');

            Console.WriteLine(field);

            var players = new[] { player1, player2 };
            var player  = 0;

            while (true)
            {
                var currentPlayer = players[player];
                // "1 2" --> row = 1 a column = 2
                int row, column;
                currentPlayer.GetPlayerInput(out row, out column);

                while (row < 0 || row > 2 ||
                       column < 0 || column > 2 ||
                       field.GetField(row, column) != ' ')
                {
                    currentPlayer.GetPlayerInput(out row, out column);
                }

                field.SetField(row, column, currentPlayer.C);

                Console.WriteLine(field);

                player = player == 0 ? 1 : 0;

                var winner = WinChecker.Check(field.ToCharTable());
                if (winner != -1)
                {
                    Console.WriteLine();
                    Console.WriteLine($"The winner is: {(winner == 0 ? player1.C : player2.C)}");
                    Console.WriteLine("Congratulations!!!");
                    Console.WriteLine("Do you wish to play again? (y - yes, n - no)");
                    var input = Console.ReadLine();
                    if (input != "y")
                    {
                        break;
                    }

                    field.Reset();
                    Console.WriteLine(field);
                    player = 0;
                }
            }
        }