001 002import java.util.HashMap; //imports des différentes classes dont l'on va avoir besoin 003import java.util.Stack; 004import java.io.File; 005import java.util.Scanner; 006 007/** 008 * Voici la classe principale du jeu, gérant toutes les interfaces contenues dans le jeu 009 * @author Gabriel Leroux aidé des enseignements de M.Bureau 010 * @version 30/04/2020 011 */ 012 013public class GameEngine 014{ 015 016 private Parser aParser; 017 private Room [] aTab; 018 private UserInterface aGui; 019 private HashMap <String,Room> aMap; 020 private Player aPlayer; 021 private int i=0; 022 private boolean aModeTest; 023 /** 024 * Création du constructeur par défaut de la class Game dans laquelle 025 * je fais appelle à la procédure createRoom() et je créer un nouvel objet aParser 026 * de la classe Parser. 027 * création d'une HashMap créant une Room avec leur nom. 028 */ 029 public GameEngine(){ 030 this.aMap= new HashMap<String, Room>(); 031 this.aModeTest=false; 032 this.aParser=new Parser(); 033 this.aTab=new Room[13]; 034 this.createRooms(); 035 } 036 037 /** 038 * Constructeur de gui 039 * @param pUserInterface l'interface utilisateur 040 */ 041 public void setGUI( final UserInterface pUserInterface ) 042 { 043 this.aGui = pUserInterface; 044 this.aPlayer.setGUI(pUserInterface); 045 } 046 047 /** 048 * Procédure dans laquelle je déclare toutes mes salles et leurs descriptions. 049 * Bien entendu, je m'aide de la Hashmap, et plus précisèment de la méthode setExit(), 050 * pour définir les sorties en fonction des directions. Je vais aussi définir l'ensemble des 051 * items présents dans le jeu. 052 */ 053 private void createRooms(){ 054 055 //creer 12 lieux 056 Room vFaucon=new Room("Vous êtes dans le fabuleux vaisseau spatial dénommé le faucon Millenium.","Images/VFaucon.gif"); 057 this.aTab[11] = vFaucon; 058 Room vHangar=new Room("Vous vous trouvez dans le hangar, où le malheureux Faucon Millenium s'est fait attirer contre son gré.","Images/bienvenue.gif"); 059 this.aTab[10] = vHangar; 060 Room vVestibule=new Room("Vous êtes finalement sortis du hangar. Vous vous trouvez désormais dans le Vestibule.","Images/vVestibule.gif"); 061 this.aTab[9] = vVestibule; 062 Room vHall1=new Room("Vous êtes dans la première partie de l'effroyable hall de l'étoile de la mort, surnommé hall1","Images/vHall1.gif"); 063 this.aTab[5] = vHall1; 064 Room vHall2=new Room("Vous avez choisis de rentrer dans la deuxième partie du hall, le hall2","Images/vHall2.gif"); 065 this.aTab[2] = vHall2; 066 Room vCorridor=new Room("Vous pénétrer dans un corridor froid et sombre. Entourez des rires des soldats et des officiers vous prenez peur...","Images/vCorridor.gif"); 067 this.aTab[1] = vCorridor; 068 Room vR2D2=new Room("Hoourrrrra ! Vous avez réussi à atteindre votre unique allié dans cet environnement sinistre. Pouura t-il vraiment et voudra-t'il vraiment vous aider ?.","Images/vR2D2.gif"); 069 this.aTab[0] = vR2D2; 070 Room vRefectoire=new Room("Vous avez atteint le réfectoire. Voici donc où mange ces saloupios de l'Empire.","Images/vRefectoire.gif"); 071 this.aTab[3] = vRefectoire; 072 Room vSalleDeGarde2=new Room("Attention ! Vous avez atteint une salle de garde.", "Images/vSalleDeGarde2.gif"); 073 this.aTab[4] = vSalleDeGarde2; 074 Room vPosteDeCommandement=new Room("Je ne sais pas où vous êtes allez vous fourrer, mais vous êtes dans de beaux draps...c'est à dire le poste de commandement.","Images/danse.gif"); 075 this.aTab[6] = vPosteDeCommandement; 076 Room vPrison=new Room("Félicitation ! Vous avez atteint la salle des machines. Plus qu'à désactiver le champ d'attraction et revenir à bord du Faucon et cela sera parfait.","Images/vSalleDesMachines.gif"); 077 this.aTab[7] = vPrison; //numéro a partir duquel on ne peut pas tp 078 Room vSalleSecrete=new Room(".","Images/IDK.gif"); 079 this.aTab[8] = vSalleSecrete; 080 081 082 TransporterRoom vSalleDeGarde1=new TransporterRoom("Attention ! Vous avez atteint une salle de garde.","Images/vSalleDeGarde1.gif",this.aTab); 083 this.aTab[12] = vSalleDeGarde1; 084 085 086 // positionner les sorties pour créer le "réseau" de lieux ci-dessous 087 //vFaucon.setExit("down",vHangar); 088 089 vHangar.setExit("east",vVestibule); 090 vHangar.setExit("north-east",vSalleDeGarde1); 091 vHangar.setExit("up",vFaucon); 092 vVestibule.setExit("north",vSalleDeGarde1); 093 vVestibule.setExit("west",vHangar); 094 vVestibule.setExit("north-east",vHall1); 095 vSalleDeGarde1.setExit("north",vCorridor); 096 vSalleDeGarde1.setExit("south",vVestibule); 097 vSalleDeGarde1.setExit("east",vHall1); 098 vSalleDeGarde1.setExit("north-east",vHall2); 099 vSalleDeGarde1.setExit("north-west",vR2D2); 100 vSalleDeGarde1.setExit("south-west",vHangar); 101 vHall1.setExit("north",vHall2); 102 vHall1.setExit("west",vSalleDeGarde1); 103 vHall1.setExit("north-east",vRefectoire); 104 vHall1.setExit("north-west",vCorridor); 105 vHall1.setExit("south-west",vVestibule); 106 vHall2.setExit("south",vHall1); 107 vHall2.setExit("east",vRefectoire); 108 vHall2.setExit("west",vCorridor); 109 vHall2.setExit("north-east", vSalleDeGarde2); 110 vHall2.setExit("north-west", vPosteDeCommandement); 111 vHall2.setExit("south-west",vSalleDeGarde1); 112 vCorridor.setExit("north",vPosteDeCommandement); 113 vCorridor.setExit("south",vSalleDeGarde1); 114 vCorridor.setExit("east",vHall2); 115 vCorridor.setExit("west",vR2D2); 116 vCorridor.setExit("south-east",vHall1); 117 vR2D2.setExit("east",vCorridor); 118 vR2D2.setExit("north-east", vPosteDeCommandement); 119 vR2D2.setExit("south-east",vSalleDeGarde1); 120 vRefectoire.setExit("north",vSalleDeGarde2); 121 vRefectoire.setExit("west",vHall2); 122 vRefectoire.setExit("south-west",vHall1); 123 vSalleDeGarde2.setExit("south",vRefectoire); 124 vSalleDeGarde2.setExit("north-west", vPrison); 125 vSalleDeGarde2.setExit("south-west",vHall2); 126 vPosteDeCommandement.setExit("south",vCorridor); 127 vPosteDeCommandement.setExit("north-east", vPrison); 128 vPosteDeCommandement.setExit("south-east", vHall2); 129 vPosteDeCommandement.setExit("south-west",vR2D2); 130 vPrison.setExit("south-east",vSalleDeGarde2); 131 vPrison.setExit("south-west",vPosteDeCommandement); 132 133 // création d'une Hashmap contenant les pîèces. 134 this.aMap.put("vFaucon",vFaucon); 135 this.aMap.put("vHangar",vHangar); 136 this.aMap.put("vHall1",vHall1); 137 this.aMap.put("vHall2",vHall2); 138 this.aMap.put("vSalleDeGarde1",vSalleDeGarde1); 139 this.aMap.put("vSalleDeGarde2",vSalleDeGarde2); 140 this.aMap.put("vPrison",vPrison); 141 this.aMap.put("vPosteDeCommandement",vPosteDeCommandement); 142 this.aMap.put("vRefectoire",vRefectoire); 143 this.aMap.put("vR2D2",vR2D2); 144 this.aMap.put("vCorridor",vCorridor); 145 this.aMap.put("vVestibule",vVestibule); 146 this.aMap.put("vSalleSecrete",vSalleSecrete); 147 148 //initialiser le lieu courant (où débute-t-on le jeu ?) comme indiqué ci-dessous. 149 String vPrenom = javax.swing.JOptionPane.showInputDialog( "Quel est ton prenom ?" ); 150 this.aPlayer=new Player(vPrenom,vHangar); 151 152 //création d'items 153 vHangar.setItem("chaise-longue",50,"Ceci est une chaise-longue. Elle pourrait vous être utile. Prenez-là !"); 154 vHangar.setItem("sabre",50, "Ceci est un sabre forgé par les antiques jedi du passé."); 155 vHall1.setItem("cristal d'amélioration",10, "Votre sabre causera plus de dégât."); 156 vHall1.setItem("casque",5, "Protège votre petite caboche."); 157 vVestibule.setItem("bourse",0,"Petite bourse contenant 10 roubles. Inutile de vous dire que vous avez eu de la chance."); 158 vRefectoire.setItem("Grosse_bourse",0,"Grosse bourse contenant 100 roubles. Inutile de vous dire que vous êtes chanceux."); 159 vPrison.setItem("Disqueuse-ACDC", 220, "Une disqueuse faisant de la musique ?! Prenez-là elle vous servira à enfoncer cette porte."); 160 vPrison.setItem("Princesse_Leïa",0,"Vous avez atteint votre objectif. Pensez à la ramenez au Faucon Millenium."); 161 vR2D2.setItem("lance-flamme",50,"BRULEZ-TOUT!!!!"); 162 vR2D2.setItem("perceuse-visseuse(Bosch)", 220,"Ne sous-estimez pas le pouvoir de la perceuse. Achetez là vous en aurez besoin pour accomplir votre quête."); 163 vCorridor.setItem("épuisette",50,"ALLEZ PECHEZ DANS CE MAGNIFIQUE OCEAN QU'EST L'ESPACE !"); 164 165 vSalleSecrete.setItem("Moyenne_bourse",0,"Bourse permettant au joueur d'éponger leur dette et de continuer le jeu."); 166 167 //création des portes 168 Door vDoorHangar=new Door(vHangar.retourneItem("sabre"),true,false); 169 vHangar.setDoor("east",vDoorHangar); 170 vVestibule.setDoor("west",vDoorHangar); 171 Door vDoorHangar2=new Door(null,false,true); 172 vHangar.setDoor("north-east",vDoorHangar2); 173 vSalleDeGarde1.setDoor("south-west",vDoorHangar2); 174 Door vDoorHangar3=new Door(vPrison.retourneItem("Princesse_Leïa"),true,true); 175 vHangar.setDoor("up",vDoorHangar3); 176 Door vDoorVestibule=new Door(null,false,false); 177 vVestibule.setDoor("north",vDoorVestibule); 178 vSalleDeGarde1.setDoor("south",vDoorVestibule); 179 Door vDoorVestibule2=new Door(vHangar.retourneItem("chaise-longue"),true,false); 180 vVestibule.setDoor("north-east",vDoorVestibule2); 181 vHall1.setDoor("south-west",vDoorVestibule2); 182 183 Door vDoorSalleDeGarde1=new Door(vR2D2.retourneItem("lance-flamme"),true,false); 184 vSalleDeGarde1.setDoor("east",vDoorSalleDeGarde1); 185 vHall1.setDoor("west",vDoorSalleDeGarde1); 186 Door vDoorSalleDeGarde3=new Door(null,false,false); 187 vSalleDeGarde1.setDoor("north",vDoorSalleDeGarde3); 188 vCorridor.setDoor("south",vDoorSalleDeGarde3); 189 //Door vDoorSalleDeGarde5=new Door(null,false,false); 190 vSalleDeGarde1.setDoor("north-west",vDoorSalleDeGarde3); 191 vR2D2.setDoor("south-east",vDoorSalleDeGarde3); 192 Door vDoorSalleDeGarde7=new Door(vCorridor.retourneItem("épuisette"),true,false); 193 vSalleDeGarde1.setDoor("north-east",vDoorSalleDeGarde7); 194 vHall2.setDoor("south-west",vDoorSalleDeGarde7); 195 Door vDoorHall1=new Door(null,false,false); 196 vHall1.setDoor("north-east",vDoorHall1); 197 vRefectoire.setDoor("south-west",vDoorHall1); 198 // Door vDoorHall3=new Door(null,false,false); 199 vHall1.setDoor("north",vDoorHall1); 200 vHall2.setDoor("south",vDoorHall1); 201 //Door vDoorHall5=new Door(null,false,false); 202 vHall1.setDoor("north-west",vDoorHall1); 203 vCorridor.setDoor("south-east",vDoorHall1); 204 205 Door vDoorR2D2=new Door(null,false,true); 206 vR2D2.setDoor("north-east",vDoorR2D2); 207 vPosteDeCommandement.setDoor("south-west",vDoorR2D2); 208 Door vDoorR2D21=new Door(null,false,false); 209 vR2D2.setDoor("east",vDoorR2D21); 210 vCorridor.setDoor("west",vDoorR2D21); 211 212 Door vDoorCorridor=new Door(null,false,false); 213 vCorridor.setDoor("east",vDoorCorridor); 214 vHall2.setDoor("west",vDoorCorridor); 215 //Door vDoorCorridor2=new Door(null,false,false); 216 vCorridor.setDoor("north",vDoorCorridor); 217 vPosteDeCommandement.setDoor("south",vDoorCorridor); 218 219 Door vDoorHall2=new Door(null,false,false); 220 vHall2.setDoor("east",vDoorHall2); 221 vRefectoire.setDoor("west",vDoorHall2); 222 //Door vDoorHall4=new Door(null,false,false); 223 vHall2.setDoor("north-west",vDoorHall2); 224 vPosteDeCommandement.setDoor("south-east",vDoorHall2); 225 //Door vDoorHall6=new Door(null,false,false); 226 vHall2.setDoor("north-east",vDoorHall2); 227 vSalleDeGarde2.setDoor("south-west",vDoorHall2); 228 229 Door vDoorRefectoire=new Door(null,false,false); 230 vRefectoire.setDoor("north",vDoorRefectoire); 231 vSalleDeGarde2.setDoor("south",vDoorRefectoire); 232 233 Door vDoorSalleDeGarde2=new Door(vPrison.retourneItem("Disqueuse-ACDC"),true,false); 234 vSalleDeGarde2.setDoor("north-west",vDoorSalleDeGarde2); 235 vPrison.setDoor("south-east",vDoorSalleDeGarde2); 236 237 Door vDoorPosteDeCommandement=new Door(vR2D2.retourneItem("perceuse-visseuse(Bosch)"),true,false); 238 vPosteDeCommandement.setDoor("north-east",vDoorPosteDeCommandement); 239 vPrison.setDoor("south-west",vDoorPosteDeCommandement); 240 241 //création du téléporteur 242 vHall2.setBeamer("Téléporteur",0,"Ceci est un téléporteur."); 243 244 } 245 /** 246 * Méthode permettant de changer de pièce. 247 * @param pCommand mots tapées par le joueur 248 */ 249 private void goRoom(final Command pCommand ){ 250 //aSon.stop(); 251 //verifier qu'il ny a pas de second mot 252 if (pCommand.hasSecondWord()==false){ 253 this.aGui.println("Go where?"); 254 return; 255 } 256 // Determiner le lieu suivant. 257 Room vNextRoom=null; 258 String vDirection=pCommand.getSecondWord(); 259 vNextRoom=this.aPlayer.getCurrentRoom().getExit(vDirection); 260 261 // s'il n'y a pas de sortie 262 if (vNextRoom==this.aPlayer.getCurrentRoom()){ 263 this.aGui.println("Commande inconnue");} 264 else if (vNextRoom==null){ 265 this.aGui.println("Il n'y a pas de sortie dans cette direction !"); 266 } 267 else{// sinon la room current devient celle tapée au clavier et on affiche les directions disponibles de cette nouvelle room 268 //test si porte peut être déverrouillée 269 Door vDoor=this.aPlayer.getCurrentRoom().getDoor(vDirection); 270 try{if (this.aPlayer.getListe().getItem(vDoor.getCle().getNom())!=null){ 271 vDoor.setPorteVer(false);} 272 } 273 catch(java.lang.NullPointerException gaby){ 274 } 275 if (vDoor.getPorteVer()==false){//si la porte n'est pas vérouillée on bouge 276 if(vDoor.getTrap()==false){//si la porte n'est pas trap on bouge 277 this.aPlayer.changerLaRoom(vNextRoom,false); 278 this.aPlayer.printLocationInfo(); 279 280 } 281 else{//Si la porte est trap, on bouge et on la vérouille ensuite 282 this.aPlayer.changerLaRoom(vNextRoom,true); 283 this.aPlayer.printLocationInfo(); 284 this.aGui.println("Ceci est une porte piégée, vous ne pourrez pas faire demi-tour."); 285 286 vDoor.setPorteVer(true); 287 } 288 } 289 else{//sinon on ne bouge pas 290 try{if(vDoor.getCle().getNom()!=null){ 291 this.aGui.println("Cette porte est verouillée. Essayez de trouver l'item permettant de l'ouvrir.\n L'item est : "+vDoor.getCle().getNom()+".");} 292 } 293 catch(java.lang.NullPointerException gaby){this.aGui.println("Cette porte est maintenant verrouillée et aucun item ne peut la dévérouiller. C'est une trap Door.");} 294 } 295 }//fin else 296 }//fin méthode 297 298 /** 299 * Procédure d'aide affichant les différentes commandes et faisant appel à printLocationInfo(). 300 */ 301 private void printHelp(){ 302 this.aGui.println("Ne désespérez pas vous y êtes presque ! "); 303 this.aPlayer.printLocationInfo(); 304 this.aGui.println("Vos commandes sont :"); 305 this.aGui.println(""); 306 this.aGui.println(this.aParser.getCommandString()); 307 this.aGui.println(""); 308 309 310 311 } 312 313 /** 314 * Lance les méthodes associées aux commandes tapées par l'utilisateur 315 * 316 * @param pCommandLine les mots tapés par l'utilisateur. 317 */ 318 public void interpretCommand( final String pCommandLine ) 319 { 320 this.aGui.println( this.aPlayer.getNom() + " > " + pCommandLine ); 321 Command vCommand = this.aParser.getCommand( pCommandLine ); 322 323 if ( vCommand.isUnknown() ) { 324 this.aGui.println( "Je ne vois pas de quelle commande vous voulez parler." ); 325 return; 326 } 327 328 String vCommandWord = vCommand.getCommandWord(); 329 if ( vCommandWord.equals( "help" ) ) 330 this.printHelp(); 331 else if ( vCommandWord.equals( "go" ) ) 332 this.goRoom( vCommand ); 333 334 else if ( vCommandWord.equals( "look" ) ) 335 this.aPlayer.look(); 336 337 else if ( vCommandWord.equals( "back" ) ) 338 if (vCommand.hasSecondWord()){ 339 this.aGui.println( "Que vouliez-vous dire ? Pour retourner en arrière taper simplement 'back'. " ); 340 } 341 342 else{ this.aPlayer.back();} 343 else if (vCommandWord.equals("test")){ 344 this.test(vCommand.getSecondWord()); 345 } 346 else if (vCommandWord.equals("prendre")){ 347 if (vCommand.hasSecondWord()){ 348 this.aPlayer.prendre(vCommand.getSecondWord());} 349 else{this.aGui.println ("Que voulez-vous prendre ?");} 350 } 351 else if (vCommandWord.equals("deposer")){ 352 if (vCommand.hasSecondWord()){ 353 this.aPlayer.deposer(vCommand.getSecondWord());} 354 else{this.aGui.println ("Que voulez-vous déposer ?");} 355 } 356 else if ( vCommandWord.equals( "ouvrir" ) ){ 357 if (vCommand.hasSecondWord()){ 358 this.aPlayer.ouvrir(vCommand.getSecondWord());} 359 else{this.aGui.println ("Que voulez-vous ouvrir ?");}} 360 else if (vCommandWord.equals("jouer")){ 361 this.jouer(vCommand.getSecondWord());} 362 else if (vCommandWord.equals("charger")){ 363 try{this.aPlayer.getListe().getBeamer(vCommand.getSecondWord()).charger(this.aPlayer.getCurrentRoom());} 364 catch(java.lang.NullPointerException gaby){this.aGui.println ("Que voulez-vous charger ? Rentrer un téléporteur valide.");}} 365 else if (vCommandWord.equals("tirer")){ 366 367 try{this.aPlayer.seTeleporter(vCommand.getSecondWord());} 368 catch(java.lang.NullPointerException gaby){this.aGui.println("Avec quoi voulez-vous tirer ? Rentrer un téléporteur valide.");}} 369 else if ( vCommandWord.equals( "quit" ) ) { 370 if ( vCommand.hasSecondWord() ) 371 this.aGui.println( "Quit what?" ); 372 else 373 this.endGame(); 374 } 375 else if (vCommandWord.equals( "alea" )){ 376 this.alea(vCommand.getSecondWord()); 377 } 378 } 379 380 /** 381 * méthode test permettant d'éxécuter les commandes d'un fichier texte 382 * supposé dans le répertoire courant 383 * @param pTest le nom du fichier. 384 */ 385 public void test(final String pTest){ 386 this.aModeTest=true; 387 try {Scanner sr =new Scanner (new File(pTest+".txt")); 388 while (sr.hasNextLine()){ 389 String vLigne = sr.nextLine(); 390 this.interpretCommand(vLigne); 391 } 392 sr.close(); 393 394 } 395 catch (final java.io.FileNotFoundException sr){ this.aGui.println("Le fichier n'existe pas.");} 396 this.aModeTest=false; 397 } 398 399 /** 400 * méthode permettant de jouer au pierre feuille ciseau pour gagner/perdre de l'argent 401 * @param pString représente ce que le joueur choisi 402 */ 403 public void jouer(final String pString){ 404 try{ 405 if (this.aPlayer.getCurrentRoom()==this.aMap.get("vR2D2")){ 406 int vChiffre=(int)(Math.random()*3); 407 408 String vPc=""; 409 if (vChiffre==0){ 410 vPc="pierre"; 411 } 412 else if (vChiffre==1){ 413 vPc="feuille"; 414 } 415 else{ 416 vPc="ciseaux"; 417 } 418 419 if (pString.equals(vPc)){ 420 this.aGui.println("R2D2 a choisi : "+vPc); 421 this.aGui.println("Egalité. Vous ne gagnez ni ne perdez rien. N'hésitez pas à rejouer !"); 422 //i+=1; 423 424 } 425 else if(pString.equals("ciseaux")&&vPc.equals("feuille")||pString.equals("pierre")&&vPc.equals("ciseaux")||pString.equals("feuille")&&vPc.equals("pierre")){ 426 this.aGui.println("R2D2 a choisi : "+vPc); 427 this.aGui.println("Vous avez gagné. Vous gagnez 10 roubles."); 428 this.aPlayer.setArgent(10); 429 430 //i+=1; 431 } 432 else if(pString.equals("ciseaux")&&vPc.equals("pierre")||pString.equals("pierre")&&vPc.equals("feuille")||pString.equals("feuille")&&vPc.equals("ciseaux")){ 433 this.aGui.println("R2D2 a choisi : "+vPc); 434 this.aGui.println("Vous avez perdu. Vous perdez 20 roubles. Le jeu c'est dangereux."); 435 this.aPlayer.setArgent(-20); 436 i+=1; 437 } 438 439 440 else{ 441 this.aGui.println("Commande inconnue.\nVeillez à bien rentrer 'pierre','feuille' ou 'ciseau' après le mot de commande 'jouer'."); 442 } 443 //création salle secrète 444 445 if (this.i==4){//if effacable ainsi que l'attribut i 446 this.aMap.get("vR2D2").setItem("ame_du_joueur",0,"Vous êtes un grand joueur. Malchanceux ou chanceux peut m'importe vous méritez d'être récompensé. Prenez cette ame !"); 447 this.aMap.get("vSalleSecrete").setExit("east",this.aMap.get("vR2D2")); 448 this.aMap.get("vR2D2").setExit("west",this.aMap.get("vSalleSecrete")); 449 Door vDoorSalleSecrete= new Door(this.aMap.get("vR2D2").retourneItem("ame_du_joueur"), true, false); 450 this.aMap.get("vSalleSecrete").setDoor("east",vDoorSalleSecrete); 451 this.aMap.get("vR2D2").setDoor("west",vDoorSalleSecrete); 452 453 } 454 }//fin du if 455 else{this.aGui.println("Vous n'avez personne avec qui jouer."); 456 }//fin du else 457 }//fin du try 458 catch(java.lang.NullPointerException gaby){this.aGui.println("Vous êtes dans la bonne salle. Pensez à rentrer 'pierre','feuille' ou 'ciseau' après le mot de commande 'jouer'.");} 459 } 460 461 /** 462 * fonction de fin de jeu empêchant toute saisie supplémentaire 463 * 464 */ 465 public void endGame() 466 { 467 this.aGui.println( "A la revoyure ! Ce fut un plaisir" ); 468 this.aGui.enable( false ); 469 470 } 471 /** 472 * Méthode permettant de sauver en mémoire la pièce que l'on veut lors de l'exécution des fichiers tests 473 * @param pString le nom de la pièce où l'on veut se rendre 474 */ 475 public void alea(final String pString){ 476 if (this.aModeTest==false){ 477 this.aGui.println("Désolé cette commande n'est activable qu'en mode test."); 478 return; 479 } 480 else{ 481 TransporterRoom vRoom=(TransporterRoom)this.aTab[12]; 482 vRoom.setAlea(this.aMap.get(pString)); 483 } 484 } 485} // Game 486