Exemple #1
0
    private void Start()
    {
        End.SetActive(false);

        game = new TTT();

        //minimaxSearch = MinimaxSearch<State, int, int>.createFor(game);
        alphabetaSearch = AlphaBetaSearch <StateTTT, int, int> .createFor(game);

        CurrentState = game.getInitialState();

        CheckisTerminal();
    }
Exemple #2
0
    void AICanPlay()
    {
        int action;

        action = alphabetaSearch.makeDecision(CurrentState);

        GameObject.Find(action.ToString()).GetComponentInChildren <Text>().text = "O";

        StateTTT updateState = game.getResult(CurrentState, action);

        CurrentState = updateState;

        CheckisTerminal();
    }
Exemple #3
0
    private void Start()
    {
        TTT game = new TTT();
        MinimaxSearch <StateTTT, int, int> minimaxSearch = MinimaxSearch <StateTTT, int, int> .createFor(game);

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

        StateTTT state = game.getInitialState();

        int action1 = -100000;
        int action2 = -100000;

        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());
    }
Exemple #4
0
    public void PlayerChooseCase(Button button)
    {
        Text buttonText = GameObject.Find(button.name).GetComponentInChildren <Text>();

        if (buttonText.text == "" && !game.isTerminal(CurrentState))
        {
            int      action      = int.Parse(button.name);
            StateTTT updateState = game.getResult(CurrentState, action);

            buttonText.text = "X";
            CurrentState    = updateState;

            CheckisTerminal();
        }
        else
        {
            // erreur
            Debug.Log("Action impossible");
            return;
        }
    }