diff --git a/src/main/java/net/berack/upo/ai/problem2/MiniMax.java b/src/main/java/net/berack/upo/ai/problem2/MiniMax.java index 80fbe39..ed667b3 100644 --- a/src/main/java/net/berack/upo/ai/problem2/MiniMax.java +++ b/src/main/java/net/berack/upo/ai/problem2/MiniMax.java @@ -1,5 +1,6 @@ package net.berack.upo.ai.problem2; +import java.security.SecureRandom; import java.util.Objects; import java.util.function.BiFunction; import java.util.function.Function; @@ -17,6 +18,7 @@ public class MiniMax { private BiFunction transition; private BiFunction playerGain; private Function actions; + private SecureRandom random = new SecureRandom(); /** * Crea una nuova istanza dell'algoritmo MiniMax per i giochi a due concorrenti. @@ -58,7 +60,8 @@ public class MiniMax { var nextState = this.transition.apply(state, action); var nextValue = this.expectedGain(nextState, player, lookahead-1, false, bestGain); - if(nextValue > bestGain) { + if(nextValue >= bestGain) { + if(nextValue == bestGain && !random.nextBoolean()) continue; //added randomicity in the decision if has equal result bestGain = nextValue; best = action; }