Skip to content

Package: IDilemmaPlayer

IDilemmaPlayer

Coverage

1: package de.fhdw.gaming.ipspiel23.dilemma.domain;
2:
3: import java.util.Map;
4: import java.util.Optional;
5: import de.fhdw.gaming.core.domain.Player;
6:
7: /**
8: * Represents a Dilemma player.
9: */
10: public interface IDilemmaPlayer extends Player<IDilemmaPlayer> {
11:
12: /**
13: * Returns the possible outcomes of this player. The key for the first-level map is the answer of the first player,
14: * the key for the second-level map is the answer of the second player.
15: */
16: Map<DilemmaAnswerType, Map<DilemmaAnswerType, Double>> getPossibleOutcomes();
17:
18: /**
19: * Returns the answer of this player.
20: */
21: Optional<DilemmaAnswerType> getAnswer();
22:
23: /**
24: * Sets the answer of this player.
25: *
26: * @param newAnswer The answer to set. {@code true} means "defect", {@code false} means "cooperate"
27: * @throws IllegalStateException if an answer has already been set.
28: */
29: void setAnswer(DilemmaAnswerType newAnswer);
30:
31: /**
32: * The strategy used by this player.
33: */
34: IDilemmaStrategy getStrategy();
35:
36: @Override
37: IDilemmaPlayer deepCopy();
38: }