Ejemplo n.º 1
0
    private void Start()
    {
        End.SetActive(false);
        game = new Puissance4();

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

        CurrentState = game.getInitialState();

        CheckisTerminal();
    }
Ejemplo n.º 2
0
    void AICanPlay()
    {
        int action;

        action = alphabetaSearch.makeDecision(CurrentState);

        Debug.Log("L'IA a choisi de jouer case " + action);

        GameObject.Find(action.ToString()).GetComponent <Image>().color = Color.red;

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

        CurrentState = updateState;

        CheckisTerminal();
    }
Ejemplo n.º 3
0
    private void Start()
    {
        Puissance4 game = new Puissance4();
        MinimaxSearch <StatePuissance4, int, int> minimaxSearch = MinimaxSearch <StatePuissance4, int, int> .createFor(game);

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

        StatePuissance4 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());
    }
Ejemplo n.º 4
0
    public void PlayerChooseCase(Button button)
    {
        int action = int.Parse(button.name);

        if (button.GetComponent <Image>().color == Color.white && game.getActions(CurrentState).Contains(action) && !game.isTerminal(CurrentState))
        {
            StatePuissance4 updateState = game.getResult(CurrentState, action);

            button.GetComponent <Image>().color = Color.yellow;
            CurrentState = updateState;

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