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); }
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; } }