Skip to content

Package: DilemmaRandomStrategy

DilemmaRandomStrategy

nameinstructionbranchcomplexitylinemethod
DilemmaRandomStrategy(IDilemmaMoveFactory)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
computeNextMove(int, IDilemmaPlayer, IDilemmaState)
M: 0 C: 12
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
equals(Object)
M: 0 C: 14
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
hashCode()
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
static {...}
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
toString()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: package de.fhdw.gaming.ipspiel23.dilemma.strategy.internals.random;
2:
3: import java.util.Optional;
4: import java.util.Random;
5:
6: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaPlayer;
7: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaState;
8: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaStrategy;
9: import de.fhdw.gaming.ipspiel23.dilemma.moves.IDilemmaMove;
10: import de.fhdw.gaming.ipspiel23.dilemma.moves.IDilemmaMoveFactory;
11: import de.fhdw.gaming.ipspiel23.dilemma.strategy.internals.DilemmaStrategy;
12:
13: /**
14: * Implements {@link IDilemmaStrategy} by randomly deciding answers.
15: */
16: public class DilemmaRandomStrategy extends DilemmaStrategy {
17:
18: /**
19: * Your personal entropy dealer - offering random bytes of excitement.
20: */
21: private static final Random RANDOM = new Random();
22:
23: /**
24: * Creates an {@link DilemmaCooperateStrategy}.
25: *
26: * @param moveFactory The factory for creating Dilemma moves.
27: */
28: DilemmaRandomStrategy(final IDilemmaMoveFactory moveFactory) {
29: super(moveFactory);
30: }
31:
32: @Override
33: public Optional<IDilemmaMove> computeNextMove(final int gameId,
34: final IDilemmaPlayer player,
35: final IDilemmaState state) {
36:• return Optional.of(RANDOM.nextBoolean()
37: ? getMoveFactory().createCooperateMove()
38: : getMoveFactory().createDefectMove());
39: }
40:
41: @Override
42: public String toString() {
43: return DilemmaRandomStrategy.class.getSimpleName();
44: }
45:
46: @Override
47: public boolean equals(final Object object) {
48:• if (object instanceof DilemmaRandomStrategy) {
49: final DilemmaRandomStrategy randomStrategy = (DilemmaRandomStrategy) object;
50: return this.toString().equals(randomStrategy.toString());
51: } else {
52: return false;
53: }
54: }
55:
56: @Override
57: public int hashCode() {
58: return super.hashCode() * this.toString().hashCode();
59: }
60: }