Skip to contentPackage: FGGameBuilder
FGGameBuilder
Coverage
1: package de.fhdw.gaming.ipspiel24.fg.domain;
2:
3: import de.fhdw.gaming.core.domain.Game;
4: import de.fhdw.gaming.core.domain.GameBuilder;
5: import de.fhdw.gaming.core.domain.GameException;
6: import de.fhdw.gaming.core.domain.ObserverFactoryProvider;
7: import de.fhdw.gaming.ipspiel24.fg.moves.FGMove;
8:
9: /**
10: * A builder which allows to create a Freizeitgestaltung game.
11: */
12: public interface FGGameBuilder extends GameBuilder {
13:
14: /**
15: * Creates an{@link FGPlayerBuilder} which allows to create and add a player to the game together with her
16: * strategy.
17: *
18: */
19: FGPlayerBuilder createPlayerBuilder();
20:
21: /**
22: * Adds a player and her corresponding strategy.
23: *
24: * @param player The player.
25: * @param strategy The player's strategy.
26: * @throws GameException if adding the player is not allowed by the rules of the game.
27: */
28: FGGameBuilder addPlayer(FGPlayer player, FGStrategy strategy) throws GameException;
29:
30: /**
31: * Changes the {@link ObserverFactoryProvider}.
32: *
33: * @param newObserverFactoryProvider The new {@link ObserverFactoryProvider}.
34: * @return {@code this}
35: */
36: FGGameBuilder changeObserverFactoryProvider(ObserverFactoryProvider newObserverFactoryProvider);
37:
38: @Override
39: Game<FGPlayer, FGState, FGMove, FGStrategy> build(int id) throws GameException, InterruptedException;
40:
41: }