Add files via upload

This commit is contained in:
Cpt-Adok
2024-05-08 10:05:33 +02:00
committed by GitHub
parent 687e810e70
commit ad8541447c
3 changed files with 147 additions and 0 deletions

26
src/Fruits.java Normal file
View File

@@ -0,0 +1,26 @@
package Environnements;
import Item.Effects;
import Item.Items;
import java.util.Random;
public class Fruits{
String typeFruit;
Effects bonus;
public Fruits(){
Random r=new Random();
Items [] fruits=new Items[] {Items.BANANE,Items.FRAISE,Items.ORANGE};
int q=r.nextInt(3);
this.typeFruit=fruits[q].getName();
this.bonus=fruits[q].getEffects();
}
public void getFruit(){
System.out.println(this.typeFruit);
}
public void getBonus(){
System.out.println(this.bonus);
}
}

69
src/Map.java Normal file
View File

@@ -0,0 +1,69 @@
package Environnements;
import java.util.Random;
public class Map{
int longueur;
int largeur;
int nbMurs;
int frequencesFruits;
Object [][] grille;
public Map(int longueur,int largeur, int nbMurs,int frequencesFruits){
this.largeur=largeur;
this.longueur=longueur;
this.nbMurs=nbMurs;
this.frequencesFruits=frequencesFruits;
grille=new Object[longueur][largeur];
for (int i=0;i<nbMurs;i++){
this.placeMur();
}
for (int j=0;j<this.largeur*this.longueur;j+=this.frequencesFruits){
this.placeFruit();
}
}
public int getLongueur(){ //Accéder à la variable Longueur
System.out.println("Longueur : "+ this.longueur);
return this.longueur;
}
public int getLargeur(){ //Accéder à la variable Largeur
System.out.println("Largeur : "+ this.largeur);
return this.largeur;
}
public void printGrille(){ //Affichage simple de la grille de jeu
for (int i=0;i<longueur;i++){
for (int j=0;j<largeur;j++){
System.out.print(this.grille[i][j]);
}
System.out.println();
}
}
// Réfléchir pour mettre plusieurs murs à des endroits différents
public void placeMur(){ //Positionner un mur défini aléatoirement sur la Map
Random r=new Random();
int x=r.nextInt(this.longueur-1); // Le "-1" permet d'éviter les murs faisant déjà partie de
int y=r.nextInt(this.largeur-1); // la bordure de la Map
int L=r.nextInt(this.longueur-x);
int l=r.nextInt(this.largeur-y);
Murs mur =new Murs(x, y,L, l);
mur.insereMur(this);
}
public void placeFruit(){
Random r=new Random();
Fruits fruit=new Fruits();
int x=r.nextInt(this.longueur);
int y=r.nextInt(this.largeur);
this.grille[x][y]=fruit;
}
}

52
src/Murs.java Normal file
View File

@@ -0,0 +1,52 @@
package Environnements;
import Item.Items;
public class Murs{
int debut_horizontal;
int debut_vertical;
int longueur;
int largeur;
public Murs(int debut_horizontal,int debut_vertical,int longueur,int largeur){
this.debut_horizontal=debut_horizontal;
this.debut_vertical=debut_vertical;
this.longueur=longueur;
this.largeur=largeur;
}
public int getDebutHorizontal(){ //Accéder à la variable de position horizontale
return this.debut_horizontal;
}
public int getDebutVertical(){ //Accéder à la variable de position verticale
return this.debut_vertical;
}
public int getLongueur(){ //Accéder à la variable Longueur
return this.longueur;
}
public int getLargeur(){ //Accéder à la variable Largeur
return this.largeur;
}
public boolean murValide(Map m){ //Vérifie que l'emplacement du mur est correct
if (this.debut_horizontal+this.longueur>m.longueur || this.debut_vertical+largeur>m.largeur){
System.out.println("Emplacement de mur invalide");
return false;
}
return true;
}
public void insereMur(Map m){ //Positionner un mur à un endroit prédéfini
boolean b=this.murValide(m);
if (b){
for (int i=this.debut_horizontal;i<this.debut_horizontal+this.longueur;i++){
for (int j=this.debut_vertical;j<this.debut_vertical+this.largeur;j++){
m.grille[i][j]=Items.Mur;
}
}
}
}
}