示例#1
0
    public void SetupGame(int nb)
    {
        End.SetActive(false);
        allumettesTxt.text = "";
        IATxt.text         = "";

        game = new Nim(nb);
        //minimaxSearch = MinimaxSearch<List<int>, int, int>.createFor(game);
        alphabetaSearch = AlphaBetaSearch <NimState, int, int> .createFor(game);

        CurrentState       = game.getInitialState();
        allumettesTxt.text = "Allumettes restantes : " + CurrentState.allumettes.ToString();

        CheckisTerminal();
    }
示例#2
0
    void AICanPlay()
    {
        int action = -1;

        //action = minimaxSearch.makeDecision(CurrentState);
        action     = alphabetaSearch.makeDecision(CurrentState);
        IATxt.text = "L'IA a choisi de retirer " + action.ToString() + " allumettes";
        NimState updateState = game.getResult(CurrentState, action);

        allumettesTxt.text = "Allumettes restantes : " + updateState.allumettes.ToString();
        CurrentState       = updateState;


        CheckisTerminal();
    }
示例#3
0
    private void Start()
    {
        Nim game = new Nim(Matches);
        MinimaxSearch <NimState, int, int> minimaxSearch = MinimaxSearch <NimState, int, int> .createFor(game);

        AlphaBetaSearch <NimState, int, int> alphabetaSearch = AlphaBetaSearch <NimState, int, int> .createFor(game);

        NimState state   = game.getInitialState();
        int      action1 = -1;
        int      action2 = -1;

        action1 = minimaxSearch.makeDecision(state);
        action2 = alphabetaSearch.makeDecision(state);

        Debug.Log("Chosen action is " + action1 + " and node minimax " + minimaxSearch.getMetrics());
        Debug.Log("Chosen action is " + action2 + " and node alphabeta " + alphabetaSearch.getMetrics());
    }
示例#4
0
    public void PlayerChooseNumber(Button button)
    {
        int action = int.Parse(button.name);

        // On vérifie que l'action est possible
        List <int> actionpossible = game.getActions(CurrentState);

        if (actionpossible.Contains(action))
        {
            // On peut jouer
            NimState updateState = game.getResult(CurrentState, action);
            allumettesTxt.text = "Allumettes restantes : " + updateState.allumettes.ToString();
            CurrentState       = updateState;

            CheckisTerminal();
        }
        else
        {
            // erreur
            Debug.Log("Action impossible");
            return;
        }
    }
示例#5
0
文件: Player.cs 项目: jonje/NimGame
 public abstract NimState GetNextState(NimState state);