commit 7677c6ec6355c02e974d59615ea89289cba115c2 Author: streaper2 Date: Mon May 27 08:25:38 2024 +0200 New branch diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..57bca72 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..9651472 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + eXplorer + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8c9943d --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/bin/eXplorer/LevelGenerator.class b/bin/eXplorer/LevelGenerator.class new file mode 100644 index 0000000..72f34b8 Binary files /dev/null and b/bin/eXplorer/LevelGenerator.class differ diff --git a/bin/eXplorer/Main.class b/bin/eXplorer/Main.class new file mode 100644 index 0000000..43b95f3 Binary files /dev/null and b/bin/eXplorer/Main.class differ diff --git a/bin/eXplorer/Player.class b/bin/eXplorer/Player.class new file mode 100644 index 0000000..539a5b3 Binary files /dev/null and b/bin/eXplorer/Player.class differ diff --git a/src/eXplorer/LevelGenerator.java b/src/eXplorer/LevelGenerator.java new file mode 100644 index 0000000..7bb4f92 --- /dev/null +++ b/src/eXplorer/LevelGenerator.java @@ -0,0 +1,119 @@ +package eXplorer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Random; +import java.lang.*; + + +public class LevelGenerator { + + private int hauteur; + private int longueur; + private String[][] carte; + + //constructeur + public LevelGenerator(int pHauteur, int pLongueur) { + this.hauteur = pHauteur; + this.longueur = pLongueur; + this.carte = generate(); + } + + + public String[][] generate() { + String[][] carte = new String[this.hauteur][this.longueur]; + int[] wall = new int[3]; + int[] wallPorte = new int[3]; + int sortie = 5; + int minGap = 3; // Minimum gap between walls + int margin = 3; // Margin from the edges + + //génération des positions des portes + for (int i = 0; i < wallPorte.length; i++) { + int max = this.hauteur - 2; // Ajusté pour éviter les bords + int min = 1; // Évite les bords + int range = max - min + 1; + int dernierMur = (int) (Math.random() * range) + min; + if(dernierMur != this.longueur-2) { + wallPorte[i] = dernierMur; + } + + //il sera généré 3 fois mais pas grave + sortie = (int) (Math.random() * range) + min; + System.out.println("WallPorte " + i + ": " + wallPorte[i]); + } + + + /** + * Generation des murs interieur + */ + // Ensure there is enough space to place the walls with the given margin and gap + if (this.longueur - 2 * margin < (wall.length - 1) * minGap) { + throw new IllegalArgumentException("Map too small to place walls with the given margin and gap"); + } + + int availableSpace = this.longueur - 2 * margin - (minGap * (wall.length - 1)); + int basePosition = margin; + + + for (int i = 0; i < wall.length; i++) { + wall[i] = basePosition + (int)(Math.random() * availableSpace / wall.length) + (i * (minGap + 1)); + basePosition = wall[i] + minGap; + System.out.println("Wall " + i + ": " + wall[i]); + } + + + + for (int i = 0; i < this.hauteur; i++) { + + for (int j = 0; j < this.longueur; j++) { + //Affichage des murs de la carte + if(i==0 || i== this.hauteur -1 || j == 0 || j == this.longueur-1) { + carte[i][j] = "#"; + //generation de la sortie + if(i==sortie && j == this.longueur -1) { + carte[i][j] = "s"; + } + } else if(contains(wall, j) ) { + carte[i][j] = "#"; + + //trouver l'index du mur afin de pouvoir positionner la porte + for(int ii=0; ii