added more logic for the server state diagram

This commit is contained in:
Daniel Grigencha
2024-11-22 09:37:49 +01:00
committed by Felix
parent f3894a5058
commit 6dfb2980fa
20 changed files with 404 additions and 214 deletions

View File

@@ -11,45 +11,45 @@ public NoPiece(ServerState parent, ServerGameLogic logic) {
@Override
public void entry() {
if (hasTurbo() || turbo == 0) {
if (roll == 6 &&
logic.getGame().getBoard().getPlayerData().getWaitingArea().hasPieces() &&
logic.getGame().getBoard().getNodes().getStartNode(Color).isOccupied()) {
parent.gotoState(new WaitingPiece(parent, logic));
} else {
parent.gotoState(new NoTurn(parent, logic));
}
} else {
validateHasPieces();
}
// if (hasTurbo() || turbo == 0) {
// if (roll == 6 &&
// logic.getGame().getBoard().getPlayerData().getWaitingArea().hasPieces() &&
// logic.getGame().getBoard().getNodes().getStartNode(Color).isOccupied()) {
// parent.gotoState(new WaitingPiece(parent, logic));
// } else {
// parent.gotoState(new NoTurn(parent, logic));
// }
// } else {
// validateHasPieces();
// }
}
private void validateHasPieces() {
if (logic.getGame().getBoard().getPlayerData().getWaitingArea().hasPieces()) {
if (logic.getGame().getBoard().getNodes().getStartNode(Color).isOccupied()) {
if (roll == 6) {
logic.send(new Player(1), new WaitPiece());
} else {
validateMove();
}
} else {
if (logic.getGame().getBoard().getNodes().getStartNode(Color).getPiece().canMove()) {
logic.send(new Player(1), new WaitPiece());
parent.gotoState(new StartPiece(parent, logic));
} else {
validateMove();
}
}
} else {
validateMove();
}
// if (logic.getGame().getBoard().getPlayerData().getWaitingArea().hasPieces()) {
// if (logic.getGame().getBoard().getNodes().getStartNode(Color).isOccupied()) {
// if (roll == 6) {
// logic.send(new Player(1), new WaitPiece());
// } else {
// validateMove();
// }
// } else {
// if (logic.getGame().getBoard().getNodes().getStartNode(Color).getPiece().canMove()) {
// logic.send(new Player(1), new WaitPiece());
// parent.gotoState(new StartPiece(parent, logic));
// } else {
// validateMove();
// }
// }
// } else {
// validateMove();
// }
}
private void validateMove() {
if (player.canMove()) {
parent.gotoState(new NoTurn(parent, logic));
} else {
logic.send(new Player(1), new SelectPiece());
}
// if (player.canMove()) {
// parent.gotoState(new NoTurn(parent, logic));
// } else {
// logic.send(new Player(1), new SelectPiece());
// }
}
}