Compare commits

..

No commits in common. "10e24cf30e6843f3c6660e32eb6ded8d1fb7207d" and "7ada56e21548ae34e799298d85561b0fa6c8753f" have entirely different histories.

5 changed files with 36 additions and 48 deletions

View File

@ -13,7 +13,6 @@ import java.util.Random;
import pp.monopoly.message.server.DiceResult;
import pp.monopoly.model.FieldVisitor;
import pp.monopoly.model.Figure;
import pp.monopoly.model.IntPoint;
import pp.monopoly.model.card.DeckHelper;
import pp.monopoly.model.fields.BuildingProperty;
import pp.monopoly.model.fields.EventField;
@ -121,11 +120,9 @@ public class Player implements FieldVisitor<Void>{
fieldID = fieldID%40;
earnMoney(2000);
}
figure.moveTo(fieldID);
return fieldID;
}
/**
* Gets all the properties owned by this player
* @return List of all properties owned by this player

View File

@ -8,10 +8,31 @@ import static java.lang.Math.max;
import static java.lang.Math.min;
public class Figure implements Item{
/**
* Enumeration representing the different statuses a Figure can have during the game.
*/
public enum Status {
/**
* The ship is in its normal state, not being previewed for placement.
*/
NORMAL,
/**
* The ship is being previewed in a valid position for placement.
*/
VALID_PREVIEW,
/**
* The ship is being previewed in an invalid position for placement.
*/
INVALID_PREVIEW
}
private final int length; // The length of the Figure
private int x; // The x-coordinate of the Figure's position
private int y; // The y-coordinate of the Figure's position
private Rotation rot; // The rotation of the Figure
private Status status; // The current status of the Figure
private final Set<IntPoint> damaged = new HashSet<>(); // The set of positions that have been hit on this ship
/**
@ -35,6 +56,7 @@ public class Figure implements Item{
this.y = y;
this.rot = rot;
this.length = length;
this.status = Status.NORMAL;
}
/**
@ -76,46 +98,21 @@ public class Figure implements Item{
}
/**
* Moves the Figure to the specified coordinates.
* Returns the current status of the Figure.
*
* @param x the new x-coordinate of the Figure's position
* @param y the new y-coordinate of the Figure's position
* @return the status of the Figure
*/
public void moveTo(int fieldId) {
moveTo(fieldIdToPosition(fieldId));
public Status getStatus() {
return status;
}
private IntPoint fieldIdToPosition(int fieldId) {
if (fieldId < 0 || fieldId > 39) {
throw new IllegalArgumentException("Invalid fieldId: " + fieldId);
}
// Determine which edge and position along the edge
if (fieldId <= 9) {
// Bottom edge: From (-10, -10) to (10, -10)
int x = -10 + fieldId * 2;
return new IntPoint(x, -10);
} else if (fieldId <= 19) {
// Right edge: From (10, -10) to (10, 10)
int y = -10 + (fieldId - 10) * 2;
return new IntPoint(10, y);
} else if (fieldId <= 29) {
// Top edge: From (10, 10) to (-10, 10)
int x = 10 - (fieldId - 20) * 2;
return new IntPoint(x, 10);
} else {
// Left edge: From (-10, 10) to (-10, -10)
int y = 10 - (fieldId - 30) * 2;
return new IntPoint(-10, y);
}
}
private Rotation fieldIdToRotation(int fieldId) {
if (fieldId >= 0 && fieldId <= 10) return Rotation.DOWN;
else if (fieldId <= 20) return Rotation.LEFT;
else if (fieldId <= 30) return Rotation.UP;
else if (fieldId <= 39) return Rotation.RIGHT;
else throw new IllegalArgumentException();
/**
* Sets the status of the Figure.
*
* @param status the new status to be set for the Figure
*/
public void setStatus(Status status) {
this.status = status;
}
/**

View File

@ -22,7 +22,7 @@ public class BoardManager {
* Creates a Monopoly GameBoard
* @return the List of Fields in correct Order
*/
public static List<Field> createBoard() {
private List<Field> createBoard() {
ArrayList<Field> fields = new ArrayList<>();
fields.add(new GoField());

View File

@ -15,8 +15,4 @@ public class GulagField extends Field{
player.visit(this);
}
public int getBailCost() {
return bailCost;
}
}

View File

@ -19,8 +19,6 @@ public class TestStreckeField extends Field{
}
public int collectMoney() {
int tmp = money;
money = 0;
return tmp;
return money = 0;
}
}