New branch

This commit is contained in:
2024-05-27 08:25:38 +02:00
commit 7677c6ec63
10 changed files with 201 additions and 0 deletions

10
.classpath Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

17
.project Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>eXplorer</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@@ -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

Binary file not shown.

BIN
bin/eXplorer/Main.class Normal file

Binary file not shown.

BIN
bin/eXplorer/Player.class Normal file

Binary file not shown.

View File

@@ -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<wall.length; ii++) {
if(wall[ii] == j) {
System.out.println("ii : "+ii + " i : " + i + " WallPorte : " + wallPorte[ii]);
if(wallPorte[ii] == i) {
carte[i][j] = "p";
}
}
}
} else {
carte[i][j] = " ";
}
}
}
return carte;
}
public void afficherCarte() {
for (int i = 0; i < this.hauteur; i++) {
for (int j = 0; j < this.longueur; j++) {
System.out.print(this.carte[i][j]);
}
System.out.println();
}
}
public boolean contains(final int[] array, final int key) {
for (final int i : array) {
if (i == key) {
return true;
}
}
return false;
}
}

19
src/eXplorer/Main.java Normal file
View File

@@ -0,0 +1,19 @@
package eXplorer;
import java.util.Iterator;
import eXplorer.LevelGenerator;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
LevelGenerator carte1 = new LevelGenerator(10, 35) ;
carte1.afficherCarte();
}
}

20
src/eXplorer/Player.java Normal file
View File

@@ -0,0 +1,20 @@
package eXplorer;
public class Player {
private int endurance = 0;
private int posX = 1;
private int posY = 1;
public Player(int x, int y) {
this.posX = x;
this.posY = y;
}
public void mouvement() {
}
}