Skip to contentMethod: SSPSaySchereStrategy(SSPMoveFactory)
      1: package de.schereSteinPapier.strategy;
2: 
3: import java.util.Optional;
4: 
5: import de.schereSteinPapier.domain.SSPPlayer;
6: import de.schereSteinPapier.domain.SSPState;
7: import de.schereSteinPapier.domain.SSPStrategy;
8: import de.schereSteinPapier.moves.SSPMove;
9: import de.schereSteinPapier.moves.factory.SSPMoveFactory;
10: 
11: /**
12:  * Implements {@link SSPStrategy} by always saying "Schere".
13:  */
14: public class SSPSaySchereStrategy implements SSPStrategy {
15: 
16:     /**
17:      * The factory for creating SSP moves.
18:      */
19:     private final SSPMoveFactory moveFactory;
20: 
21:     /**
22:      * Creates an {@link SSPSaySchereStrategy}.
23:      *
24:      * @param moveFactory The factory for creating Demo moves.
25:      */
26:     public SSPSaySchereStrategy(final SSPMoveFactory moveFactory) {
27:         this.moveFactory = moveFactory;
28:     }
29: 
30:     @Override
31:     public Optional<SSPMove> computeNextMove(final int gameId, final SSPPlayer player, final SSPState state) {
32:         return Optional.of(this.moveFactory.createSchereMove());
33:     }
34: 
35:     @Override
36:     public String toString() {
37:         return SSPSaySchereStrategy.class.getSimpleName();
38:     }
39: }