resolution problème de tuiles
This commit is contained in:
@@ -3,24 +3,30 @@ package model;
|
||||
public class Tile {
|
||||
private final Terrain terrain1;
|
||||
private final Terrain terrain2;
|
||||
private final int terrain1Sides; // Nombre de côtés attribués à terrain1 (1, 2 ou 3)
|
||||
|
||||
// Constructeur pour une tuile avec un ou deux terrains
|
||||
public Tile(Terrain terrain1, Terrain terrain2) {
|
||||
public Tile(Terrain terrain1, Terrain terrain2, int terrain1Sides) {
|
||||
this.terrain1 = terrain1;
|
||||
this.terrain2 = terrain2;
|
||||
this.terrain1Sides = terrain1Sides;
|
||||
}
|
||||
|
||||
// Getter pour terrain1
|
||||
public Terrain getTerrain1() {
|
||||
return terrain1;
|
||||
}
|
||||
|
||||
// Getter pour terrain2
|
||||
public Terrain getTerrain2() {
|
||||
return terrain2;
|
||||
}
|
||||
|
||||
// Vérifie si la tuile contient un seul terrain
|
||||
public int getTerrain1Sides() {
|
||||
return terrain1Sides;
|
||||
}
|
||||
|
||||
public int getTerrain2Sides() {
|
||||
return 6 - terrain1Sides; // Le reste des côtés
|
||||
}
|
||||
|
||||
public boolean hasSingleTerrain() {
|
||||
return terrain2 == null;
|
||||
}
|
||||
|
@@ -9,14 +9,23 @@ public class TileGenerator {
|
||||
this.random = new Random(seed);
|
||||
}
|
||||
|
||||
// Générer une tuile avec un ou deux terrains
|
||||
public Tile generateRandomTile() {
|
||||
// Générer un terrain aléatoire
|
||||
Terrain terrain1 = Terrain.values()[random.nextInt(Terrain.values().length)];
|
||||
|
||||
// Décider si la tuile a un seul terrain ou deux
|
||||
Terrain terrain2 = random.nextBoolean() ? Terrain.values()[random.nextInt(Terrain.values().length)] : null;
|
||||
if (random.nextBoolean()) { // 50% chance d'avoir un seul terrain
|
||||
return new Tile(terrain1, null, 6); // Toutes les faces au même terrain
|
||||
}
|
||||
|
||||
return new Tile(terrain1, terrain2);
|
||||
Terrain terrain2;
|
||||
do {
|
||||
terrain2 = Terrain.values()[random.nextInt(Terrain.values().length)];
|
||||
} while (terrain2 == terrain1); // Assurer deux terrains différents
|
||||
|
||||
int terrain1Sides = switch (random.nextInt(3)) { // 0, 1 ou 2 -> 1+5, 2+4, 3+3
|
||||
case 0 -> 1;
|
||||
case 1 -> 2;
|
||||
default -> 3;
|
||||
};
|
||||
|
||||
return new Tile(terrain1, terrain2, terrain1Sides);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user