Task 5 progress 5/6 just need to finish [player statement]

NOTE: There's a bug with the water board and stoneCircles tile generator. Will fix later hopefully lol
This commit is contained in:
Immanuel Alvaro Bhirawa
2023-04-07 21:15:16 +10:00
parent 2747d89712
commit 9f547c5aab

View File

@@ -145,15 +145,17 @@ public class Viewer extends Application {
String[] parts = stateString.split("; ?"); String[] parts = stateString.split("; ?");
int boardHeight = 0; int boardHeight = 0;
int boardHeightPx = 0; int boardHeightPx = 0;
// int tileSize = 500;
for ( String part : parts) { for ( String part : parts) {
String[] parseSplit = part.split(" "); String[] parseSplit = part.split(" ");
String stateCases = parseSplit[0]; String stateCases = parseSplit[0];
switch (stateCases) { switch (stateCases) {
case "a": case "a":
boardHeight = Integer.parseInt(parseSplit[1]); boardHeight = Integer.parseInt(parseSplit[1]);
boardHeightPx = boardHeight * 45; boardHeightPx = 575;
viewerGrid.setPrefWidth(boardHeightPx); viewerGrid.setPrefWidth(boardHeightPx);
viewerGrid.setPrefHeight(boardHeightPx); viewerGrid.setPrefHeight(boardHeightPx);
// viewerGrid.relocate((VIEWER_WIDTH/2-viewerGrid.getPrefWidth()/2), (VIEWER_HEIGHT/2-viewerGrid.getPrefHeight()/2));
// row major order // row major order
for(int i = 0; i < boardHeight; i++){ for(int i = 0; i < boardHeight; i++){
@@ -161,10 +163,10 @@ public class Viewer extends Application {
Rectangle boardMap = new Rectangle(boardHeightPx/boardHeight, Rectangle boardMap = new Rectangle(boardHeightPx/boardHeight,
boardHeightPx/boardHeight, Color.DARKBLUE); boardHeightPx/boardHeight, Color.DARKBLUE);
viewerGrid.add(boardMap, i, j); viewerGrid.add(boardMap, i, j);
Label boardLabel = new Label(i + "," + j); // Label boardLabel = new Label(i + "," + j);
boardLabel.setFont(Font.font("Sans Serif", 12)); // boardLabel.setFont(Font.font("Sans Serif", 12));
boardLabel.setTextFill(Color.WHITE); // boardLabel.setTextFill(Color.WHITE);
viewerGrid.add(boardLabel, i, j); // viewerGrid.add(boardLabel, i, j);
} }
} }
break; break;
@@ -198,28 +200,149 @@ public class Viewer extends Application {
String[] coords = parseSplit[i].split(","); String[] coords = parseSplit[i].split(",");
int xCoord = Integer.parseInt(coords[0]); int xCoord = Integer.parseInt(coords[0]);
int yCoord = Integer.parseInt(coords[1]); int yCoord = Integer.parseInt(coords[1]);
Label islandLabel = new Label(xCoord + "," + yCoord + // Label islandLabel = new Label(xCoord + "," + yCoord +
"\n b " + parseSplit[1]); // "\n b " + parseSplit[1]);
islandLabel.setTextFill(Color.GREENYELLOW); // islandLabel.setTextFill(Color.GREENYELLOW);
islandLabel.setFont(Font.font("Sans Serif", 12)); // islandLabel.setFont(Font.font("Sans Serif", 12));
// viewerGrid.add(islandLabel, xCoord, yCoord);
// viewerGrid.setAlignment(Pos.CENTER);
viewerGrid.add(island, xCoord, yCoord); viewerGrid.add(island, xCoord, yCoord);
viewerGrid.add(islandLabel, xCoord, yCoord);
// root.getChildren().add(viewerGrid); // root.getChildren().add(viewerGrid);
} }
break; break;
case "s": case "s":
for(int i = 1; i < parseSplit.length; i++){ for(int i = 1; i < parseSplit.length; i++){
Rectangle theRock = new Rectangle(boardHeightPx/boardHeight, Rectangle theRock = new Rectangle(boardHeightPx/boardHeight
boardHeightPx/boardHeight, Color.GRAY); - 15, boardHeightPx/boardHeight - 15, Color.GRAY);
String[] coords = parseSplit[i].split(","); String[] coords = parseSplit[i].split(",");
theRock.setTranslateX(5);
// theRock.setTranslateY(0);
viewerGrid.add(theRock, Integer.parseInt(coords[0]), viewerGrid.add(theRock, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1])); Integer.parseInt(coords[1]));
} }
break; break;
case "r": case "r":
for(int i = 1; i < parseSplit.length; i++){
switch(parseSplit[i]) {
case "C":
// System.out.println("Start of C " + parseSplit[i]);
i++;
// System.out.println("First iteration of C" + parseSplit[i]);
while(!parseSplit[i].equals("B")){
// System.out.println("C loop" + parseSplit[i]);
String[] coords = parseSplit[i].split(",");
Rectangle coconut = new Rectangle(boardHeightPx/boardHeight
- 15, boardHeightPx/boardHeight - 15, Color.BROWN);
coconut.setTranslateX(5);
Label coconutLabel = new Label("C");
coconutLabel.setTextFill(Color.WHITE);
coconutLabel.setFont(Font.font("Sans Serif", 12));
coconutLabel.setTranslateX(15);
viewerGrid.add(coconut, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
viewerGrid.add(coconutLabel, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
i++;
// System.out.println("End of C loop" + parseSplit[i]);
}
i--;
break;
case "B":
i++;
while(!parseSplit[i].equals("W")){
String[] coords = parseSplit[i].split(",");
Rectangle bamboo = new Rectangle(boardHeightPx/boardHeight
- 15, boardHeightPx/boardHeight - 15, Color.YELLOW);
bamboo.setTranslateX(5);
Label bambooLabel = new Label("B");
bambooLabel.setTextFill(Color.BLACK);
bambooLabel.setFont(Font.font("Sans Serif", 12));
bambooLabel.setTranslateX(15);
viewerGrid.add(bamboo, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
viewerGrid.add(bambooLabel, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
i++;
}
i--;
break;
case "W":
i++;
while(!parseSplit[i].equals("P")){
String[] coords = parseSplit[i].split(",");
Rectangle water = new Rectangle(boardHeightPx/boardHeight
- 15, boardHeightPx/boardHeight - 15, Color.CYAN);
water.setTranslateX(5);
Label waterLabel = new Label("W");
waterLabel.setTextFill(Color.BLACK);
waterLabel.setFont(Font.font("Sans Serif", 12));
waterLabel.setTranslateX(15);
viewerGrid.add(water, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
viewerGrid.add(waterLabel, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
i++;
}
i--;
break;
case "P":
i++;
while(!parseSplit[i].equals("S")){
String[] coords = parseSplit[i].split(",");
Rectangle precious = new Rectangle(boardHeightPx/boardHeight
- 15, boardHeightPx/boardHeight - 15, Color.GOLD);
precious.setTranslateX(5);
Label preciousLabel = new Label("P");
preciousLabel.setTextFill(Color.BLACK);
preciousLabel.setFont(Font.font("Sans Serif", 12));
preciousLabel.setTranslateX(15);
viewerGrid.add(precious, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
viewerGrid.add(preciousLabel, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
i++;
}
i--;
break;
case "S":
i++;
while(i < parseSplit.length){
String[] coords = parseSplit[i].split(",");
Rectangle precious = new Rectangle(boardHeightPx/boardHeight
- 15, boardHeightPx/boardHeight - 15, Color.SILVER);
precious.setTranslateX(5);
Label preciousLabel = new Label("S");
preciousLabel.setTextFill(Color.BLACK);
preciousLabel.setFont(Font.font("Sans Serif", 12));
preciousLabel.setTranslateX(15);
viewerGrid.add(precious, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
viewerGrid.add(preciousLabel, Integer.parseInt(coords[0]),
Integer.parseInt(coords[1]));
i++;
}
break;
}
}
// String[] parseSplit = part.split(" ");
// String stateCases = parseSplit[0];
// String[] parseSplit = part.split(" ");
// for (String parse : parseSplit) {
// switch (parse) {
// case "C":
// Rectangle coconut = new Rectangle(boardHeightPx/boardHeight
// - 15, boardHeightPx/boardHeight - 15,
// Color.BROWN);
// String[] coords = parseSplit[i].split(",");
// viewerGrid.add(coconut, Integer.parseInt(coords[0]),
// Integer.parseInt(coords[1]));
// }
// }
// }
// parts[i].matches(" c \\d [ES]") // parts[i].matches(" c \\d [ES]")
//String[] parseSplit = part.split(" "); //String[] parseSplit = part.split(" ");
break; // break;
//r C 1,1 B 1,2 W P 1,4 S; //r C 1,1 B 1,2 W P 1,4 S;
} }
} }