From 2dd7551628a161af60028c2f00df63acc68b5eb9 Mon Sep 17 00:00:00 2001 From: zlatax <64391879+zlatax@users.noreply.github.com> Date: Sat, 3 Apr 2021 21:45:50 +0900 Subject: [PATCH] everything runs without error --- project-1/src/ShadowTreasure.java | 37 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/project-1/src/ShadowTreasure.java b/project-1/src/ShadowTreasure.java index bae67cb..e36fad9 100644 --- a/project-1/src/ShadowTreasure.java +++ b/project-1/src/ShadowTreasure.java @@ -3,6 +3,7 @@ import bagel.*; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.util.Scanner; @@ -30,7 +31,7 @@ public class ShadowTreasure extends AbstractGame { public ShadowTreasure() throws IOException { super(1024, 768, "ShadowTreasure"); - this.loadEnvironment("test/test1/environment.csv"); // encoding includes 65279 char which fucks up the scanning part. + this.loadEnvironment("test/test2/environment.csv"); // Add code to initialize other attributes as needed bg = new Image("res/images/background.png"); } @@ -38,10 +39,10 @@ public class ShadowTreasure extends AbstractGame { /** * Load from input file */ - private void loadEnvironment(String filename){ + private void loadEnvironment(String filename) { // Code here to read from the file and set up the environment try { - Scanner scanner = new Scanner(new File(filename), "utf-8"); + Scanner scanner = new Scanner(new File(filename), StandardCharsets.UTF_8); double xcoor, ycoor; int level, counter=0; while (scanner.hasNextLine()) { @@ -54,37 +55,29 @@ public class ShadowTreasure extends AbstractGame { linescan.useDelimiter(","); String item = linescan.next(); - switch (item.toLowerCase()) { - case "player": + case "player" -> { xcoor = Double.parseDouble(linescan.next()); ycoor = Double.parseDouble(linescan.next()); level = Integer.parseInt(linescan.next()); -// System.out.println("Player: ("+xcoor+","+ycoor+"), "+level); player = new Player("res/images/player.png", new APoint(xcoor, ycoor), level); - break; - case "zombie": + } + case "zombie" -> { xcoor = Double.parseDouble(linescan.next()); ycoor = Double.parseDouble(linescan.next()); -// System.out.println("Zombie: ("+xcoor+","+ycoor+")"); zombie = new Zombie("res/Images/Zombie.png", new APoint(xcoor, ycoor)); - break; - case "sandwich": + } + case "sandwich" -> { xcoor = Double.parseDouble(linescan.next()); ycoor = Double.parseDouble(linescan.next()); -// System.out.println("Sandwich: ("+xcoor+","+ycoor+")"); sandwich = new Sandwich("res/Images/Sandwich.png", new APoint(xcoor, ycoor)); - break; - default: - throw new IllegalStateException("Unexpected value: " + item.toLowerCase()); + } + default -> throw new IllegalStateException("Unexpected value: " + item.toLowerCase()); } linescan.close(); } scanner.close(); - System.out.println("player: "+player.getPos().toString()); - System.out.println("zombie: "+zombie.getPos().toString()); - System.out.println("sandwich: "+sandwich.getPos().toString()); } catch(FileNotFoundException e) { System.out.println("File was not found!\n"+e); } catch(Exception e) { @@ -104,9 +97,15 @@ public class ShadowTreasure extends AbstractGame { APoint playerPos = player.getPos(); APoint zombiePos = zombie.getPos(); + printInfo(playerPos.getX(),playerPos.getY(),player.getEnergy()); + // Logic to update the game, as per specification must go here if (playerPos.distanceTo(zombiePos) < 50) { player.addEnergy(-3); + APoint dir = playerPos.getDirection(zombiePos); + playerPos.setX(playerPos.getX() + dir.getX() * player.getStepsize()); + playerPos.setY(playerPos.getY() + dir.getY() * player.getStepsize()); + printInfo(playerPos.getX(),playerPos.getY(),player.getEnergy()); System.exit(0); } else if (sandwich != null && playerPos.distanceTo(sandwich.getPos()) < 50) { player.addEnergy(5); @@ -121,7 +120,7 @@ public class ShadowTreasure extends AbstractGame { playerPos.setX(playerPos.getX() + dir.getX() * player.getStepsize()); playerPos.setY(playerPos.getY() + dir.getY() * player.getStepsize()); } - printInfo(playerPos.getX(),playerPos.getY(),player.getEnergy()); + count=0; } count++; -- GitLab