Skip to content

Package: MuenzwurfGameBuilder

MuenzwurfGameBuilder

Coverage

1: package de.fhdw.gaming.ipspiel24.muenzwurf.core.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.muenzwurf.core.moves.MuenzwurfMove;
8: /**
9: * A builder which allows to create a Demo game.
10: */
11: public interface MuenzwurfGameBuilder extends GameBuilder {
12:
13: /**
14: * Creates an {@link MuenzwurfPlayerBuilder} which allows to create and add a player to the game together with her
15: * strategy.
16: */
17: MuenzwurfPlayerBuilder createPlayerBuilder();
18:
19: /**
20: * Adds a player and her corresponding strategy.
21: *
22: * @param player The player.
23: * @param strategy The player's strategy.
24: * @throws GameException if adding the player is not allowed by the rules of the game.
25: */
26: MuenzwurfGameBuilder addPlayer(MuenzwurfPlayer player, MuenzwurfStrategy strategy) throws GameException;
27:
28:
29:
30: /**
31: * Changes the {@link ObserverFactoryProvider}.
32: *
33: * @param newObserverFactoryProvider The new {@link ObserverFactoryProvider}.
34: * @return {@code this}
35: */
36: MuenzwurfGameBuilder changeObserverFactoryProvider(ObserverFactoryProvider newObserverFactoryProvider);
37:
38: @Override
39: Game<MuenzwurfPlayer, MuenzwurfState, MuenzwurfMove, MuenzwurfStrategy> build(int id)
40: throws GameException, InterruptedException;
41: }