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