mirror of
https://github.com/Cpt-Adok/SNAKE.git
synced 2026-03-28 17:13:43 +00:00
changement de tout le programme avec ajout de plein de nouvelle chose et coorection de chose pour le rendre plus pratique
This commit is contained in:
23
src/types/Effect.java
Normal file
23
src/types/Effect.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package types;
|
||||
|
||||
/**
|
||||
* cette enumérateur {@link Effects} contient tout les effets
|
||||
* necessaire pour le bon déroulement du jeu et quelque effets
|
||||
* amusant qui pousse un peu plus les mecaniques du jeu.
|
||||
*/
|
||||
public enum Effect {
|
||||
/**
|
||||
* Effet : Réduit la taille du serpent de 1 segment.
|
||||
*/
|
||||
DECREASESIZE,
|
||||
|
||||
/**
|
||||
* Effet : Intransposable, entraînant la mort du joueur lors du contact.
|
||||
*/
|
||||
IMPASSABLE,
|
||||
|
||||
/**
|
||||
* Effet : Vide, aucun effet.
|
||||
*/
|
||||
VOID;
|
||||
}
|
||||
67
src/types/Item.java
Normal file
67
src/types/Item.java
Normal file
@@ -0,0 +1,67 @@
|
||||
package types;
|
||||
|
||||
import environnements.Grid;
|
||||
|
||||
/**
|
||||
* cette enum représente différents types d'objets dans le jeu.
|
||||
*/
|
||||
public enum Item implements Grid {
|
||||
/**
|
||||
* Mur impassable.
|
||||
* Effet associé : <pre>{@code types.Effect.IMPASSABLE}</pre>
|
||||
* utf : null car c'est un autre programme qui gère le mur.
|
||||
*/
|
||||
WALL(Effect.IMPASSABLE, null),
|
||||
|
||||
/**
|
||||
* Zone vide sans effet.
|
||||
* Effet associé : <pre>{@code types.Effect.VOID}</pre>
|
||||
* utf : vide
|
||||
*/
|
||||
VOID(Effect.VOID, " "),
|
||||
|
||||
/**
|
||||
* Fraise.
|
||||
* Effet associé : <pre>{@code types.Effect.DECREASESIZE}</pre>
|
||||
* utf : un drapeau (0x26FF)
|
||||
*/
|
||||
FRAISE(Effect.DECREASESIZE, " \u26FF ");
|
||||
|
||||
private final Effect EFFECT;
|
||||
private String utfCode;
|
||||
|
||||
/**
|
||||
* @param effect L'effet associé à l'objet.
|
||||
*/
|
||||
Item(Effect effect, String utf) {
|
||||
this.EFFECT = effect;
|
||||
this.utfCode = utf;
|
||||
}
|
||||
|
||||
/**
|
||||
* cette methode donne l'effet associé à l'objet.
|
||||
*
|
||||
* @return L'effet associé à l'objet.
|
||||
*/
|
||||
|
||||
@Override
|
||||
public Effect get() {
|
||||
return this.EFFECT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item[] getValues() {
|
||||
return values();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getStringCode() {
|
||||
return this.utfCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStringCode(String textCode) {
|
||||
this.utfCode = textCode;
|
||||
}
|
||||
|
||||
}
|
||||
63
src/types/Mouvement.java
Normal file
63
src/types/Mouvement.java
Normal file
@@ -0,0 +1,63 @@
|
||||
package types;
|
||||
|
||||
/**
|
||||
* Cet enumerateur prend en charge tout les mouvements possible
|
||||
* pour le serpent, il a uniquement la possibilité de se déplacer
|
||||
* grâce a {@link Mouvement} pour la classe Player et Robot.
|
||||
*/
|
||||
public enum Mouvement {
|
||||
/**
|
||||
* HAUT prend comme coordonnée (0, -1) pour se déplacer.
|
||||
* @param x = 0
|
||||
* @param y = -1
|
||||
*/
|
||||
HAUT(0, -1),
|
||||
|
||||
/**
|
||||
* BAS prend comme coordonnée (0, 1) pour se déplacer.
|
||||
* @param x = 0
|
||||
* @param y = 1
|
||||
*/
|
||||
BAS(0, 1),
|
||||
|
||||
/**
|
||||
* GAUCHE prend comme coordonnée (1, 0) pour se déplacer.
|
||||
* @param x = -1
|
||||
* @param y = 0
|
||||
*/
|
||||
GAUCHE(-1, 0),
|
||||
|
||||
/**
|
||||
* @DROITE prend comme coordonnée (-1, 0) pour se déplacer.
|
||||
* @param x = 1
|
||||
* @param y = 0
|
||||
*/
|
||||
DROITE(1, 0);
|
||||
|
||||
private final int deltaX;
|
||||
private final int deltaY;
|
||||
|
||||
Mouvement(int deltaX, int deltaY) {
|
||||
this.deltaX = deltaX;
|
||||
this.deltaY = deltaY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction prend les coordonnées mis en paramètre et
|
||||
* modifie avec les coordonnées de l'enum.
|
||||
* @param coordinate prend principalement les coordonnées du
|
||||
* personnage
|
||||
*/
|
||||
public void updateCoordinate(int[] coordinate) {
|
||||
coordinate[0] += this.deltaX;
|
||||
coordinate[1] += this.deltaY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne les coordonnées des valeurs du mouvement.
|
||||
* @return la liste qui contient [0] = x et [1] = y
|
||||
*/
|
||||
public int[] getCoordinate() {
|
||||
return new int[] {this.deltaX, this.deltaY};
|
||||
}
|
||||
}
|
||||
36
src/types/SnakePart.java
Normal file
36
src/types/SnakePart.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package types;
|
||||
|
||||
import environnements.Grid;
|
||||
|
||||
public enum SnakePart implements Grid {
|
||||
HEAD(Effect.IMPASSABLE, " \u25CF "),
|
||||
BODY(Effect.IMPASSABLE, " \u25A1 ");
|
||||
|
||||
private final Effect EFFECT;
|
||||
private String utfCode;
|
||||
|
||||
SnakePart(Effect effect, String utf) {
|
||||
this.EFFECT = effect;
|
||||
this.utfCode = utf;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Effect get() {
|
||||
return this.EFFECT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SnakePart[] getValues() {
|
||||
return values();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getStringCode() {
|
||||
return this.utfCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStringCode(String textCode) {
|
||||
this.utfCode = textCode;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user