Hallo,
ich bin gerade ein bisschen mit Guice am rumspielen und auf zwei Probleme gestoßen, die ich nicht so recht geknackt bekomme. Ich brechs mal auf den Kern der Problematik runter: Ich habe ein Spielobjekt, das zwei Spieler übergeben bekommt. Die Namen der Spieler werden zuvor gesetzt (beispielsweise in die GUI eingetragen)
private Player p1;
private Player p2;
public Game(Player p1, Player p2) {
this.p1 = p1;
this.p2 = p2;
}
}
private String name;
public Player(String name) {
this.name = name;
}
}
Wie bekomme ich hin, dass mir zwei unterschiedliche Playerobjekte gegeben werden? Providerklassen würden abhilfe schaffen, wenn die Spieler nicht noch einen zuvor gesetzten Namen brächten.
Zweiter Fall: Das Spiel hat eine Liste von Spielphasen. Es gibt auch eine Phase-Klasse. Phasen unterscheiden sich durch ein Enum, das den Typ speichert sowie eine Liste von Events, die zu Rundenbeginn gefeuert werden.
private PhaseType type;
private List<PhaseEvent> listEvents
public Phase(PhaseType type, List<PhaseEvent> listEvents) {
this.type = type;
this.listEvents = listEvents;
}
}
Die Typen werden nach festen Regeln vergeben, sind also von vorn herein bekannt (genau wie die Events).
Hoffe, hier kennt sich jemand bisschen mit Guice aus und kann mir helfen.