Skip to content

Package: VierGewinntRandomStrategy

VierGewinntRandomStrategy

nameinstructionbranchcomplexitylinemethod
VierGewinntRandomStrategy()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
computeNextMove(int, VierGewinntPlayer, VierGewinntState)
M: 30 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 6 C: 0
0%
M: 1 C: 0
0%

Coverage

1: package de.fhdw.gaming.ipspiel21.viergewinnt.core.domain.impl;
2:
3: import java.util.Optional;
4: import java.util.Random;
5: import java.util.Set;
6:
7: import de.fhdw.gaming.core.domain.GameException;
8: import de.fhdw.gaming.ipspiel21.viergewinnt.core.domain.VierGewinntField;
9: import de.fhdw.gaming.ipspiel21.viergewinnt.core.domain.VierGewinntPlayer;
10: import de.fhdw.gaming.ipspiel21.viergewinnt.core.domain.VierGewinntState;
11: import de.fhdw.gaming.ipspiel21.viergewinnt.core.domain.VierGewinntStrategy;
12: import de.fhdw.gaming.ipspiel21.viergewinnt.core.domain.moves.VierGewinntMove;
13: import de.fhdw.gaming.ipspiel21.viergewinnt.core.domain.moves.impl.VierGewinntMoveImpl;
14:
15: /**
16: * The Random Strategy for the VierGewinntGame.
17: *
18: * @author Robby Rabbitman
19: *
20: */
21: public class VierGewinntRandomStrategy implements VierGewinntStrategy {
22:
23: @Override
24: public Optional<VierGewinntMove> computeNextMove(final int gameId, final VierGewinntPlayer player,
25: final VierGewinntState state) throws GameException, InterruptedException {
26: final Set<VierGewinntField> fields = state.getBoard().getAllPlayableFields();
27: final Optional<VierGewinntField> field =
28: fields.stream().skip(new Random().nextInt(fields.size())).findFirst();
29:• if (field.isPresent()) {
30: return Optional.of(new VierGewinntMoveImpl(field.get().getPosition()));
31: }
32: return Optional.empty();
33: }
34:
35: }