reformatted code

This commit is contained in:
Benjamin Feyer
2024-12-10 02:23:19 +01:00
parent 91d4718179
commit 38c865d135
5 changed files with 78 additions and 76 deletions

View File

@@ -53,41 +53,38 @@ public void selectPiece(Piece piece) {
public void received(MoveMessage msg) {
Piece piece = logic.getGame().getPieceThroughUUID(msg.getPiece().getUuid());
//logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant();
System.out.println("Client: selectPieceState: receivedMoveMessage: msg.isHomeMoved():"+msg.isHomeMove());
System.out.println("Client: selectPieceState: receivedMoveMessage: msg.isHomeMoved():" + msg.isHomeMove());
if (msg.isHomeMove()) {
System.out.println("Client: selectPieceState: receivedMoveMessage: msg.getPiece.getState():"+piece.getState());
if(piece.getState().equals(PieceState.ACTIVE)){
System.out.println("Client: selectPieceState: receivedMoveMessage: msg.getPiece.getState():" + piece.getState());
if (piece.getState().equals(PieceState.ACTIVE)) {
logic.addNotification(new HomeMoveNotification(piece.getUuid(), msg.getTargetIndex()));
int infieldIndex=logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
System.out.println("Client: SelectState: activePiece in Home: infieldIndex"+infieldIndex);
if(msg.getTargetIndex()==logic.getGame().getActivePlayer().getHighestHomeIdx()){
int infieldIndex = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
System.out.println("Client: SelectState: activePiece in Home: infieldIndex" + infieldIndex);
if (msg.getTargetIndex() == logic.getGame().getActivePlayer().getHighestHomeIdx()) {
piece.setState(PieceState.HOMEFINISHED);
}
else{
else {
piece.setState(PieceState.HOME);
}
logic.getGame().getBoard().getInfield()[infieldIndex].clearOccupant();
logic.getGame().getPlayerByColor(piece.getColor()).setPieceInHome(msg.getTargetIndex(), piece);
}
else{
else {
System.out.println("Client: SelectPieceState: receivedMoveMessage:reached else");
logic.addNotification(new HomeMoveNotification(piece.getUuid(), msg.getTargetIndex()));
System.out.println("Client: electPieceState: homeindex"+logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece));
System.out.println("Client: electPieceState: homeindex" + logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece));
int pieceHomeIndex = logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece);
if(msg.getTargetIndex()==logic.getGame().getActivePlayer().getHighestHomeIdx()){
if (msg.getTargetIndex() == logic.getGame().getActivePlayer().getHighestHomeIdx()) {
piece.setState(PieceState.HOMEFINISHED);
}
else{
else {
piece.setState(PieceState.HOME);
}
logic.getGame().getActivePlayer().getHomeNodes()[pieceHomeIndex].clearOccupant();
logic.getGame().getPlayerByColor(piece.getColor()).setPieceInHome(msg.getTargetIndex(), piece);
}
} else {
}
else {
int oldIndex = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
Piece occ = logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant();
@@ -104,12 +101,13 @@ public void received(MoveMessage msg) {
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant();
//set new node
logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(piece);
if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isStart()){
if (piece.isShielded()){
if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isStart()) {
if (piece.isShielded()) {
piece.setShield(ShieldState.SUPPRESSED);
logic.addNotification(new ShieldSuppressedNotification(piece.getUuid()));
}
} else if (piece.isSuppressed()){
}
else if (piece.isSuppressed()) {
piece.setShield(ShieldState.ACTIVE);
logic.addNotification(new ShieldActiveNotification(piece.getUuid()));
}

View File

@@ -38,7 +38,6 @@ protected boolean canMove(Piece piece) {
int normPieceIdx = (-startIdx + pieceIdx + 40) % 40;
int targetIdx = normPieceIdx + steps;
//checks if the piece can move in the home
if (piece.getState().equals(PieceState.HOME)) {
if (canPieceMoveInHome(piece, steps)) {
@@ -77,11 +76,11 @@ else if (40 > targetIdx && (!piece.getState().equals(PieceState.HOME) || !piece.
protected boolean canPieceMoveInHome(Piece piece, int steps) {
//tests if the piece can move inside the home
steps = logic.getGame().getDiceModifier() * logic.getGame().getDiceEyes();
System.out.println("Server: reached canPieceMoveInHome for piece: " + piece +" and the steps: "+steps);
System.out.println("Server: reached canPieceMoveInHome for piece: " + piece + " and the steps: " + steps);
if (piece.getState().equals(PieceState.HOME)) {
int homeIdx = logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece);
System.out.println("Server: reached canPieceMoveInHome for piece: " + piece + " and the steps: "+steps + " and the homeIndex: "+homeIdx + " and the if-clause ((3 - homeIdx) >= steps - 1): "+((3 - homeIdx) >= steps - 1));
System.out.println("Server: reached canPieceMoveInHome for piece: " + piece + " and the steps: " + steps + " and the homeIndex: " + homeIdx + " and the if-clause ((3 - homeIdx) >= steps - 1): " + ((3 - homeIdx) >= steps - 1));
//tests if the steps are less than the possible movement
if ((3 - homeIdx) >= steps - 1) {
return !jumpOver(steps, homeIdx, false);
@@ -96,11 +95,11 @@ else if (piece.getState() == PieceState.ACTIVE) {
int startIdx = logic.getGame().getActivePlayer().getStartNodeIndex();
int normPieceIdx = (-startIdx + pieceIdx + 40) % 40;
int targetIdx = normPieceIdx + steps;
System.out.println("Server: canPieceHomeMove: else: Active: with pieceIndex: "+pieceIdx+" and the steps: "+steps+ " and startIdx: "+startIdx+" and targetIdx: "+targetIdx +" and the if-statement (targetIdx >= 40): "+(targetIdx >= 40));
System.out.println("Server: canPieceHomeMove: else: Active: with pieceIndex: " + pieceIdx + " and the steps: " + steps + " and startIdx: " + startIdx + " and targetIdx: " + targetIdx + " and the if-statement (targetIdx >= 40): " + (targetIdx >= 40));
if (targetIdx >= 40) {
int stepsToHome = 39 - normPieceIdx;
int restMovement = steps - stepsToHome-1;
System.out.println("Server: canPieceHomeMove:else: restMovement: "+restMovement+ " and the if-clause(restMovement >= 3):"+(restMovement >= 3));
int restMovement = steps - stepsToHome - 1;
System.out.println("Server: canPieceHomeMove:else: restMovement: " + restMovement + " and the if-clause(restMovement >= 3):" + (restMovement >= 3));
if (restMovement >= 4) return false;
return !jumpOver(restMovement, 0, true);
}
@@ -122,7 +121,7 @@ else if (piece.getState() == PieceState.ACTIVE) {
private boolean jumpOver(int stepsInHome, int homeIdx, boolean outside) {
//tests if the piece comes from the outside in the home
if (outside) {
System.out.println("Server: jumpOver: for the homeIndex: "+ homeIdx+" ,stepsInHome: "+stepsInHome+ " , outside: "+outside + " annd the targetIndex: "+stepsInHome);
System.out.println("Server: jumpOver: for the homeIndex: " + homeIdx + " ,stepsInHome: " + stepsInHome + " , outside: " + outside + " annd the targetIndex: " + stepsInHome);
if (logic.getGame().getActivePlayer().getHomeNodes()[stepsInHome].isOccupied()) return true;
for (int i = 0; i <= stepsInHome; i++) {
if (logic.getGame().getActivePlayer().getHomeNodes()[i].isOccupied()) return true;
@@ -131,7 +130,7 @@ private boolean jumpOver(int stepsInHome, int homeIdx, boolean outside) {
//tests if the piece jumps over a piece from inside the home
else {
int targetIndex = stepsInHome + homeIdx;
System.out.println("Server: jumpOver: for the homeIndex: "+ homeIdx+" ,stepsInHome: "+stepsInHome+ " , outside: "+outside + " and the targetIndex: "+targetIndex);
System.out.println("Server: jumpOver: for the homeIndex: " + homeIdx + " ,stepsInHome: " + stepsInHome + " , outside: " + outside + " and the targetIndex: " + targetIndex);
if (logic.getGame().getActivePlayer().getHomeNodes()[targetIndex].isOccupied()) return true;
for (int i = 1 + homeIdx; i <= targetIndex; i++) {
if (logic.getGame().getActivePlayer().getHomeNodes()[i].isOccupied()) return true;
@@ -158,13 +157,13 @@ protected int getHomeTargetIdx(Piece piece, int steps) {
int stepsToHome = 39 - normPieceIdx;
//calculates the rest-movement inside a home
int restMovement = steps - stepsToHome - 1;
System.out.println("Server: getHomeTargetIndex for the piece: "+ piece + " with the index: "+restMovement);
System.out.println("Server: getHomeTargetIndex for the piece: " + piece + " with the index: " + restMovement);
return restMovement;
}
//the else handles the logic if the piece is in the home and moves inside the house
else {
int pieceHomeIdx = logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece);
System.out.println("Server: getHomeTargetIndex for the piece: "+ piece + " with the index: "+(pieceHomeIdx + steps));
System.out.println("Server: getHomeTargetIndex for the piece: " + piece + " with the index: " + (pieceHomeIdx + steps));
return pieceHomeIdx + steps;
}
}
@@ -177,7 +176,7 @@ protected int getHomeTargetIdx(Piece piece, int steps) {
*/
protected int getInfieldTarget(Piece piece, int steps) {
int index = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
System.out.println("Server: calculated the targetIndex in the Infield for:"+piece+"with the value"+ ((steps + index) % 40));
System.out.println("Server: calculated the targetIndex in the Infield for:" + piece + "with the value" + ((steps + index) % 40));
return (steps + index) % 40;
}

View File

@@ -24,9 +24,9 @@ public NoPieceState(ChoosePieceState choosePieceAutomaton, ServerGameLogic logic
super(choosePieceAutomaton, logic);
}
private void initialize(){
private void initialize() {
Player activePlayer = logic.getGame().getPlayerByColor(logic.getGame().getActiveColor());
if(logic.getGame().getDiceModifier() == 0){
if (logic.getGame().getDiceModifier() == 0) {
if (logic.getGame().getDiceEyes() == 6) {
if (activePlayer.hasPieceInWaitingArea()) {
if (!logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].isOccupied(activePlayer.getColor())) {
@@ -36,34 +36,40 @@ private void initialize(){
}
}
this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getNoTurnState());
} else if (activePlayer.hasPieceInWaitingArea()) {
if (!logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].isOccupied(activePlayer.getColor())){
}
else if (activePlayer.hasPieceInWaitingArea()) {
if (!logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].isOccupied(activePlayer.getColor())) {
if (logic.getGame().getDiceEyes() == 6) {
this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getWaitingPieceState());
} else {
}
else {
checkSelectPiece(activePlayer);
}
} else if (canMove(logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].getOccupant())){
}
else if (canMove(logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].getOccupant())) {
this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getStartPieceState());
} else {
}
else {
checkSelectPiece(activePlayer);
}
} else {
}
else {
checkSelectPiece(activePlayer);
}
}
private void checkSelectPiece(Player activePlayer){
private void checkSelectPiece(Player activePlayer) {
ArrayList<Piece> moveablePieces = new ArrayList<>();
for (Piece piece : activePlayer.getPieces()){
if (piece.getState().equals(PieceState.ACTIVE) || piece.getState().equals(PieceState.HOME)){
for (Piece piece : activePlayer.getPieces()) {
if (piece.getState().equals(PieceState.ACTIVE) || piece.getState().equals(PieceState.HOME)) {
moveablePieces.add(piece);
}
}
moveablePieces.removeIf(piece -> !canMove(piece));
if (moveablePieces.isEmpty()) {
this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getNoTurnState());
} else {
}
else {
this.choosePieceAutomaton.getSelectPieceState().setMoveablePieces(moveablePieces);
this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getSelectPieceState());
}

View File

@@ -40,17 +40,17 @@ public void setMoveablePieces(ArrayList<Piece> moveablePieces) {
* This method will be used whenever this state will be entered.
*/
@Override
public void enter(){
public void enter() {
int steps = logic.getGame().getDiceModifier() * logic.getGame().getDiceEyes();
for (Piece piece : moveablePieces) {
if(canPieceMoveInHome(piece,steps)){
int target= getHomeTargetIdx(piece,steps);
if (canPieceMoveInHome(piece, steps)) {
int target = getHomeTargetIdx(piece, steps);
targetIndex.add(target);
isHomeMove.add(true);
}
else{
int target = getInfieldTarget(piece,steps);
else {
int target = getInfieldTarget(piece, steps);
targetIndex.add(target);
isHomeMove.add(false);
}
@@ -59,60 +59,58 @@ public void enter(){
}
@Override
public void received(RequestMoveMessage msg, int from){
if(!moveablePieces.contains(msg.getPiece())){
public void received(RequestMoveMessage msg, int from) {
if (!moveablePieces.contains(msg.getPiece())) {
throw new RuntimeException("invalid Piece");
}
int indexOfPiece = moveablePieces.indexOf(msg.getPiece());
int steps = logic.getGame().getDiceModifier() * logic.getGame().getDiceEyes();
Piece piece = moveablePieces.get(indexOfPiece);
if(canPieceMoveInHome(piece,steps)){
if(piece.getState().equals(PieceState.HOME)) {
if (canPieceMoveInHome(piece, steps)) {
if (piece.getState().equals(PieceState.HOME)) {
//gets the oldNode
int homeIndex = logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece);
Node oldNode = logic.getGame().getActivePlayer().getHomeNodes()[homeIndex];
//gets the targetNode
int targetHomeIdx = getHomeTargetIdx(piece,steps);
int targetHomeIdx = getHomeTargetIdx(piece, steps);
Node targetNode = logic.getGame().getActivePlayer().getHomeNodes()[targetHomeIdx];
if (targetHomeIdx ==logic.getGame().getActivePlayer().getHighestHomeIdx()) {
if (targetHomeIdx == logic.getGame().getActivePlayer().getHighestHomeIdx()) {
piece.setState(PieceState.HOMEFINISHED);
}
else{
else {
piece.setState(PieceState.HOME);
}
oldNode.clearOccupant();
targetNode.setOccupant(piece);
}
else{
else {
int oldNoteIdx = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
Node oldNode = logic.getGame().getBoard().getInfield()[oldNoteIdx];
//gets the targetNode
int targetHomeIdx = getHomeTargetIdx(piece,steps);
int targetHomeIdx = getHomeTargetIdx(piece, steps);
Node targetNode = logic.getGame().getActivePlayer().getHomeNodes()[targetHomeIdx];
if (targetHomeIdx ==logic.getGame().getActivePlayer().getHighestHomeIdx()) {
if (targetHomeIdx == logic.getGame().getActivePlayer().getHighestHomeIdx()) {
piece.setState(PieceState.HOMEFINISHED);
}
else{
else {
piece.setState(PieceState.HOME);
}
oldNode.clearOccupant();
targetNode.setOccupant(piece);
}
LOGGER.log(System.Logger.Level.INFO,"Server : SelectPieceState: PieceState:"+piece.getState());
LOGGER.log(System.Logger.Level.INFO, "Server : SelectPieceState: PieceState:" + piece.getState());
}
else{
LOGGER.log(System.Logger.Level.INFO,"Server : SelectPieceState: PieceState:"+piece.getState());
else {
LOGGER.log(System.Logger.Level.INFO, "Server : SelectPieceState: PieceState:" + piece.getState());
int oldNoteIdx = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
Node oldNode = logic.getGame().getBoard().getInfield()[oldNoteIdx];
int targetIndex = (oldNoteIdx+steps)%40;
int targetIndex = (oldNoteIdx + steps) % 40;
Node targetNode = logic.getGame().getBoard().getInfield()[targetIndex];
Piece occ = targetNode.getOccupant();
@@ -120,13 +118,12 @@ public void received(RequestMoveMessage msg, int from){
logic.getGame().getPlayerByColor(occ.getColor()).addWaitingPiece(occ);
}
if(targetNode.isStart()){
if(piece.getShield()== ShieldState.ACTIVE) piece.setShield(ShieldState.SUPPRESSED);
if (targetNode.isStart()) {
if (piece.getShield() == ShieldState.ACTIVE) piece.setShield(ShieldState.SUPPRESSED);
}
oldNode.clearOccupant();
targetNode.setOccupant(piece);
}
boolean homeMove = isHomeMove.get(indexOfPiece);
@@ -134,16 +131,17 @@ public void received(RequestMoveMessage msg, int from){
Node targetNode = logic.getGame().getBoard().getInfield()[targIdx];
LOGGER.log(System.Logger.Level.INFO,"Server : SelectPieceState: PieceState: end:"+piece.getState());
LOGGER.log(System.Logger.Level.INFO, "Server : SelectPieceState: PieceState: end:" + piece.getState());
logic.getServerSender().broadcast(new MoveMessage(piece, homeMove, targIdx));
if(targetNode.isBonus()) {
if (targetNode.isBonus()) {
for (Player p : logic.getGame().getPlayersAsList()) {
if(p.getColor() == logic.getGame().getActiveColor()) {
if (p.getColor() == logic.getGame().getActiveColor()) {
PowerCard cardToDraw = logic.getGame().draw();
p.addHandCard(cardToDraw);
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(cardToDraw));
} else {
}
else {
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(new HiddenCard()));
}
}

View File

@@ -41,7 +41,7 @@ public void enter() {
}
@Override
public void received(RequestMoveMessage msg, int from){
public void received(RequestMoveMessage msg, int from) {
LOGGER.log(System.Logger.Level.INFO, "Received RequestMoveMessage message. is piece equals: " + piece.equals(msg.getPiece()));
if (piece.equals(msg.getPiece())) {
int targetIndex = calculateTargetIndex(piece);
@@ -54,20 +54,21 @@ public void received(RequestMoveMessage msg, int from){
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant();
Piece occ = targetNode.getOccupant();
if (occ != null){
if (occ != null) {
//move occ to waiting
logic.getGame().getPlayerByColor(occ.getColor()).addWaitingPiece(occ);
}
//move piece to targetNode
targetNode.setOccupant(piece);
if(targetNode.isBonus()) {
if (targetNode.isBonus()) {
for (Player p : logic.getGame().getPlayersAsList()) {
if(p.getColor() == logic.getGame().getActiveColor()) {
if (p.getColor() == logic.getGame().getActiveColor()) {
PowerCard cardToDraw = logic.getGame().draw();
p.addHandCard(cardToDraw);
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(cardToDraw));
} else {
}
else {
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(new HiddenCard()));
}
}