package modele; import java.util.ArrayList; import java.util.Hashtable; import javax.swing.JLabel; import controleur.Controle; import controleur.GLOBAL; import outils.connexion.Connection; /** * Gestion du jeu côté serveur * */ public class JeuServeur extends Jeu { /** * Collection de murs */ private ArrayList lesMurs = new ArrayList() ; /** * Collection de joueurs */ private Hashtable lesJoueurs = new Hashtable() ; private Connection connection; /** * Constructeur */ public JeuServeur(Controle control) { this.controle = control; } @Override public void connexion(Connection connection) { this.lesJoueurs.put(connection, new Joueur(this)); } @Override public void reception(Connection connection, Object info) { String splitted[] = ((String)info).split(GLOBAL.separateur); switch(splitted[0]) { case "pseudo": controle.evenementJeuServeur("ajout panel murs", connection); String pseudo = splitted[1]; int numPerso = Integer.parseInt(splitted[2]); System.out.println(info); this.lesJoueurs.get(connection).initPerso(pseudo, numPerso, lesMurs, lesJoueurs.values()); } } @Override public void deconnexion() { } /** * Envoi d'une information vers tous les clients * fais appel plusieurs fois à l'envoi de la classe Jeu */ public void envoi() { } /** * Génération des murs */ public void constructionMurs() { for(int i = 0; i<20; i++){ Mur leMur = new Mur(); lesMurs.add(leMur); this.controle.evenementJeuServeur("ajout mur", leMur.getJLabel());; } } public void ajoutJLabelJeuArene(JLabel obj) { controle.evenementJeuServeur("ajout jlabel jeu", obj); } public void envoiJeuATous() { for(Connection joueur : lesJoueurs.keySet()) { controle.evenementJeuServeur("ajout joueurs", joueur); } } }