From f1519ba40c5f1b4576b9bb8c70d47d76bbe9c724 Mon Sep 17 00:00:00 2001 From: Debucquoy Anthony Date: Wed, 3 May 2023 17:29:10 +0200 Subject: [PATCH] levelMaker (#36) This is a really simple and not efficient level Maker to build levels. you have to run the main method in FileParserFacotry.java with your idea and respond to all the questions. it's painfully slow but less than doing it by hand on a paper I guess. I added level11.level as an example for where to put the level when finished. To access it you have to do: `new File(getClass().getResources("level11.level").getFile())` and put it into `FileParserFactory.loadMapFromFile(File f)` Co-authored-by: Debucquoy Co-authored-by: Anthony Debucquoy Reviewed-on: https://git.herisson.ovh/undefined_name/School_Project/pulls/36 Reviewed-by: Mat_02 --- .../Parsers/FileParserFactory.java | 49 +++++++++++++++++++ .../resources/school_project/level11.level | 1 + 2 files changed, 50 insertions(+) create mode 100644 app/src/main/resources/school_project/level11.level diff --git a/app/src/main/java/school_project/Parsers/FileParserFactory.java b/app/src/main/java/school_project/Parsers/FileParserFactory.java index a7f4f68..83749bf 100644 --- a/app/src/main/java/school_project/Parsers/FileParserFactory.java +++ b/app/src/main/java/school_project/Parsers/FileParserFactory.java @@ -2,11 +2,13 @@ package school_project.Parsers; import javafx.util.Pair; import school_project.Map; +import school_project.Piece; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.NotSerializableException; +import java.util.Scanner; /** * This is used to find the right parser to parser a save/level file. @@ -80,4 +82,51 @@ public class FileParserFactory { } return new Pair(fileParser, save_data); } + + public static void main(String[] args) throws IOException { + Scanner in = new Scanner(System.in); + Map level = new Map(); + + System.out.print("Entrez le nom du fichier:"); + File file = new File(in.nextLine()); + + System.out.print("Entrez la largeur de la map:"); + int map_width = in.nextInt(); + + System.out.print("Entrez la hauteur de la map:"); + int map_height = in.nextInt(); + + boolean[][] map_shape = new boolean[map_height][map_width]; + + for (int i = 0; i < map_height; i++) { + for (int j = 0; j < map_width; j++) { + System.out.print("mur (" + i + ", " + j + ")? (y/n):"); + map_shape[i][j] = in.next(".").charAt(0) != 'y'; + } + } + + level.setShape(map_shape); + System.out.println(level); + System.out.print("Entrez le nombre de pieces:"); + int piece_amount = in.nextInt(); + + for (int i = 0; i < piece_amount; i++) { + System.out.print("Entrez la largeur de la piece" + (i+1) +": "); + int _piece_width = in.nextInt(); + + System.out.print("Entrez la hauteur de la piece" + (i+1) +": "); + int _piece_height = in.nextInt(); + boolean[][] _piece_shape = new boolean[_piece_height][_piece_width]; + + for (int k = 0; k < _piece_height; k++) { + for (int j = 0; j < _piece_width; j++) { + System.out.print("mur (" + k + ", " + j + ")? (y/n):"); + _piece_shape[k][j] = in.next(".").charAt(0) != 'y'; + } + } + + level.addPiece(new Piece(_piece_shape)); + } + saveFileFromMap(file, level); + } } \ No newline at end of file diff --git a/app/src/main/resources/school_project/level11.level b/app/src/main/resources/school_project/level11.level new file mode 100644 index 0000000..b66355c --- /dev/null +++ b/app/src/main/resources/school_project/level11.level @@ -0,0 +1 @@ +SMSçÿÿ€3ÿ€"ð"°"p"°€SME \ No newline at end of file