mis channel

This commit is contained in:
2024-05-23 16:04:09 +02:00
parent aaf2540705
commit 71cb378256
2 changed files with 350 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
package connexion;
import environnements.*;
import types.Mouvement;
import personnages.Personnage;
public class Channel extends Personnage {
private Reseau reseau;
public Channel(Object[][] map, String channel) {
super(new int [] {19,19});
reseau=new Reseau(channel);
}
/**
* Méthode permettant l'envoi de message, grâce à celle de Réseau
* @param String contenant la direction voulue
**/
public void envoyerMessage(String s) {
reseau.sendContent(s);
}
/**
* Méthode permettant la réception du dernier message envoyé, grâce à celle de Réseau
**/
public String recupererMessage() {
return reseau.getLastedContent();
}
/**
* Méthode permettant de convertir un String en Mouvement
* (Le String est celui récupéré dans le channel)
* @param String s
* @return Mouvement
*/
public Mouvement conversion(String s){
if (s.equals("U") || s.equals("u")){
return Mouvement.HAUT;
}else if (s.equals("D") || s.equals("d")){
return Mouvement.BAS;
}else if (s.equals("L") || s.equals("l")){
return Mouvement.GAUCHE;
}else if (s.equals("R") || s.equals("r")){
return Mouvement.DROITE;
}
return null;
}
/**
* Cette méthode est commune à toutes les sous-classes de personnages
* Elle permet de jouer. Ici, on bouge le personnage en fonction du String
* reçu dans le Channel, converti en Mouvement.
* @param map
* @return boolean qui indique si le Personnage est vivant ou pas.
*/
// @Override
public boolean round(Map map){
int [] coordinate=this.getHeadCoordinate();
this.moveSnake(conversion(recupererMessage()));
if (map.isGameOver(coordinate) || this.applyEffects(map.getEffect(coordinate))){
return true;
}
map.deleteItems(coordinate);
this.increaseRound();
return false;
}
}