Hallo Zusammen,
ich zermatere mir jetzt schon seit einigen Stunden den Kopf, komme aber nicht weiter.
Ich programmiere grad ein Brettspiel. Es verfügt über 2 Player (human) mit jeweils einem "currentPlayer" der am Zug ist. Immer wenn ich das Spiel starte und testen möchte ob sich was geändert hat, wirft er mir meine Exception, dass "Player = null" ist.
Das Spiel ist nach dem MVC aufgebaut und ich vermute, dass ich entweder
a) i-wie die currentPlayer flasch übergebe
b) die currentPlayer falsch initialisiert hab
oder
c) i-was vergessen habe, es aber partout nicht bemerke...
heir mal die code schnipsel, von den ich denke dass sie relevante sind....
mein Model
mein Controller, der die Methode aufruft...
class Round - der Teil der die Exception wirft (gekürzt)
er kommt ja noch gar nicht soweit, die "executeTurn" auszuführen, da ja die Exception geworfen wird..
Tipps und Anstöße nehme ich gern an
Grüße
JinRo
ich zermatere mir jetzt schon seit einigen Stunden den Kopf, komme aber nicht weiter.
Ich programmiere grad ein Brettspiel. Es verfügt über 2 Player (human) mit jeweils einem "currentPlayer" der am Zug ist. Immer wenn ich das Spiel starte und testen möchte ob sich was geändert hat, wirft er mir meine Exception, dass "Player = null" ist.
Das Spiel ist nach dem MVC aufgebaut und ich vermute, dass ich entweder
a) i-wie die currentPlayer flasch übergebe
b) die currentPlayer falsch initialisiert hab
oder
c) i-was vergessen habe, es aber partout nicht bemerke...
heir mal die code schnipsel, von den ich denke dass sie relevante sind....
mein Model
Java:
public class UiModel extends Observable {
private static Game game = MerelsGame.createNewGame();
private Player currentPlayer = game.getFirstPlayer();
public void setGame(Game game) {
UiModel.game = game;
}
/**
* @return Returns the game.
*/
public static Game getGame() {
return game;
}
/**
* @param currentPlayer The currentPlayer to set.
*/
public void setCurrentPlayer(Player currentPlayer) {
setChanged();
this.currentPlayer = currentPlayer;
notifyObservers();
}
/**
* @return Returns the currentPlayer.
*/
public Player getCurrentPlayer() {
return currentPlayer;
}
Java:
public class UiController {
private UiModel model;
public UiController() {
UiBoard viewer = new UiBoard(this);
model = new UiModel();
model.addObserver(viewer);
}
public void changeStartField(Field field) {
this.model.setStartField(field);
try {
Round.executeTurn(UiModel.getGame().getBoard(), model.getCurrentPlayer(), model
.getStartField(), model.getEndField());
} catch (MerelsException e) {
// TODO: Throw Exception
System.err.println(e.getMessage());
}
}
Java:
public class Round {
public static void executeTurn(Board board, Player player, Field startField, Field endField)
throws MerelsException {
if (player == null) {
throw new MerelsException("Player is null. -Round");
}
}
er kommt ja noch gar nicht soweit, die "executeTurn" auszuführen, da ja die Exception geworfen wird..
Tipps und Anstöße nehme ich gern an
Grüße
JinRo