コード例 #1
0
        public int Start(string selected, BoardSize size, AiLevel level, bool first)
        {
            var score = new GameScore();

            do
            {
                var symbol = GetSymbolForPlayer(selected);
                var player = first ? symbol.Item1 : symbol.Item2;

                var game  = new OxGame(size);
                var board = new Board(size);
                var human = new Human(symbol.Item1);
                var ai    = new AI(symbol.Item2, level);

                // game loop
                while (game.GameState == State.Playing)
                {
                    if (player == human.Symbol)
                    {
                        // ตาผู้เล่น
                        game.CheckError(PlayerTurn(game, board, human));
                        player = ChangeTurn(player);
                    }
                    else
                    {
                        // ตา ai
                        game.CheckError(PlayerTurn(game, board, ai));
                        player = ChangeTurn(player);
                    }
                }

                if (game.GameState == State.Win || game.GameState == State.Draw)
                {
                    // นับสถิติการแข่งขัน
                    AddSore(game, score, human, ai);
                }
                else if (game.GameState == State.Error)
                {
                    // แสดงข้อผิดพลาด
                    DisplayError();
                }
            } while (PlayAgain());

            score.Summary();

            return(0);
        }
コード例 #2
0
        protected void AddSore(OxGame game, GameScore score, Human human, AI ai)
        {
            switch (game.GameState)
            {
            case State.Win:
                if (game.GetWinner() == human.Symbol)
                {
                    score.AddWin();
                    DisplayResult($"You({human.Symbol}) Win");
                }
                else
                {
                    score.AddLose();
                    DisplayResult($"Com({ai.Symbol}) Win");
                }
                break;

            case State.Draw:
                score.AddDraw();
                DisplayResult("Draw");
                break;
            }
        }