Skip to content

Method: DilemmaCooperateStrategy(IDilemmaMoveFactory)

1: package de.fhdw.gaming.ipspiel23.dilemma.strategy.internals.cooperate;
2:
3: import java.util.Optional;
4:
5: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaPlayer;
6: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaState;
7: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaStrategy;
8: import de.fhdw.gaming.ipspiel23.dilemma.moves.IDilemmaMove;
9: import de.fhdw.gaming.ipspiel23.dilemma.moves.IDilemmaMoveFactory;
10: import de.fhdw.gaming.ipspiel23.dilemma.strategy.internals.DilemmaStrategy;
11:
12: /**
13: * Implements {@link IDilemmaStrategy} by staying silent.
14: */
15: public class DilemmaCooperateStrategy extends DilemmaStrategy {
16:
17: /**
18: * Creates an {@link DilemmaCooperateStrategy}.
19: *
20: * @param moveFactory The factory for creating Dilemma moves.
21: */
22: DilemmaCooperateStrategy(final IDilemmaMoveFactory moveFactory) {
23: super(moveFactory);
24: }
25:
26: @Override
27: public Optional<IDilemmaMove> computeNextMove(final int gameId,
28: final IDilemmaPlayer player,
29: final IDilemmaState state) {
30: return Optional.of(getMoveFactory().createCooperateMove());
31: }
32:
33: @Override
34: public String toString() {
35: return DilemmaCooperateStrategy.class.getSimpleName();
36: }
37:
38: @Override
39: public boolean equals(final Object object) {
40: if (object instanceof DilemmaCooperateStrategy) {
41: final DilemmaCooperateStrategy coopStrategy = (DilemmaCooperateStrategy) object;
42: return this.toString().equals(coopStrategy.toString());
43: } else {
44: return false;
45: }
46: }
47:
48: @Override
49: public int hashCode() {
50: return super.hashCode() * this.toString().hashCode();
51: }
52: }