Skip to content

Method: MinMaxVGStrategy()

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.VGFieldState;
8: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGPlayer;
9: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGState;
10: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGStrategy;
11: import de.fhdw.gaming.ipspiel22.vierGewinnt.moves.VGMove;
12:
13: /**
14: * Best Strategy by using the MinMaxAlgorithm.
15: */
16: public class MinMaxVGStrategy implements VGStrategy {
17:
18: @Override
19: public Optional<VGMove> computeNextMove(final int gameId, final VGPlayer player, final VGState state)
20: throws GameException {
21: final MinMaxViergewinnt vg = new MinMaxViergewinnt(state, player);
22: final MinMaxAlgorithm<VGPlayer, VGState, VGMove, MinMaxViergewinnt> minmax = new MinMaxAlgorithm<>(vg);
23:
24: final Optional<VGMove> choosenMove = minmax.getBestMove(5);
25: System.out.println("Gewählter best move: " + choosenMove.toString() + ", Spielerfarbe: "
26: + (player.isUsingRedChips() ? VGFieldState.RED.toString()
27: : VGFieldState.YELLOW.toString()));
28: return choosenMove;
29: }
30:
31: @Override
32: public String toString() {
33: return MinMaxVGStrategy.class.getSimpleName();
34: }
35: }