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