Skip to contentMethod: computeNextMove(int, VGPlayer, VGState)
      1: package de.fhdw.gaming.ipspiel22.vierGewinnt.strategy;
2: 
3: import java.util.Optional;
4: 
5: import de.fhdw.gaming.core.domain.GameException;
6: import de.fhdw.gaming.ipspiel22.searchtree.algorithm.MinMaxAlgorithm;
7: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGPlayer;
8: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGState;
9: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGStrategy;
10: import de.fhdw.gaming.ipspiel22.vierGewinnt.moves.VGMove;
11: 
12: /**
13:  * Best Strategy by using the MinMaxAlgorithm.
14:  */
15: public class MinMaxVGStrategy implements VGStrategy {
16: 
17:     @Override
18:     public Optional<VGMove> computeNextMove(final int gameId, final VGPlayer player, final VGState state)
19:             throws GameException {
20:         final MinMaxViergewinnt vg = new MinMaxViergewinnt(state, player);
21:         final MinMaxAlgorithm<VGPlayer, VGState, VGMove, MinMaxViergewinnt> minmax = new MinMaxAlgorithm<>(vg);
22: 
23:         return minmax.getBestMove(5);
24:     }
25: 
26:     @Override
27:     public String toString() {
28:         return MinMaxVGStrategy.class.getSimpleName();
29:     }
30: }