Beispiel #1
0
        public Move MakeMove(Gamestate gamestate)
        {
            Round[] rounds = gamestate.GetRounds();
            if (rounds != null && rounds.Length > 2)
            {
                Move suggestedMove;
                Move predictedMove;
                UpdateClasses(rounds);
                var rand = new Random();
                int pick = rand.Next(5);
                switch (pick)
                {
                case 0:
                case 1:
                case 2:
                    //case 3:
                    predictedMove = PredictOpponentMoves[rounds.Last().GetP2()].PredictAMove();
                    suggestedMove = SuggestMove.CounterTheirMove(predictedMove);
                    break;

                //case 2:
                //case 3:
                //case 3:
                case 6:
                    predictedMove = PredictMyMoves[rounds.Last().GetP1()].PredictAMove();
                    suggestedMove = SuggestMove.CounterMyMove(predictedMove);
                    break;

                case 3:
                case 4:
                    suggestedMove = SuggestMove.GuessAMove();
                    break;

                default:
                    suggestedMove = Move.P;
                    break;
                }

                var moveToMake = Dynamite.ShouldDynamiteBePlayed(GameplayScores, suggestedMove);
                return(moveToMake);
            }

            return(Move.P);
        }