001 002/** 003 * Classe de la pièce qui nous téléporte n'importe ou. 004 * 005 * @author Gabriel Leroux 006 * @version 30/04/2020 007 */ 008public class TransporterRoom extends Room 009{ 010 private RoomRandomizer aRoomRandomizer; 011 private Room aAlea; 012 /** 013 * Constructeur d'objets de classe TransporterRoom 014 * @param pDescription, description de la salle 015 * @param pImage, image de la salle 016 * @param pTab, le tableau des salles que l'on peut piocher aléatoirement 017 */ 018 public TransporterRoom(final String pDescription, final String pImage,final Room[]pTab) 019 { 020 super(pDescription, pImage); 021 this.aRoomRandomizer= new RoomRandomizer(pTab); 022 this.aAlea=null; 023 } 024 /** 025 * Modificateur de la room en mémoire 026 * @param pRoom le nom de la Room a insérer en mémoire 027 */ 028 public void setAlea(final Room pRoom){ 029 this.aAlea=pRoom; 030 } 031 /** 032 * Retourne une pièce aléatoire, indépendante du paramètre de direction 033 * @param pDirection indique la direction que l'on choisit d'ignorer 034 * @return une pièce aléatoire 035 */ 036 @Override public Room getExit(final String pDirection) 037 { 038 Room vRoom=this.aAlea; 039 this.aAlea=null; 040 041 if(vRoom!=null){ 042 043 return vRoom; 044 045 } 046 else if(!(pDirection.equals("north-east")||pDirection.equals("north-west")||pDirection.equals("south")||pDirection.equals("north")||pDirection.equals("south-west"))){ 047 return null;//pour éviter tout bug lorsque l'on est dans la TransporterRoom et que l'on rentre une direction inconnue 048 } 049 else{ 050 System.out.println("pb"); 051 return aRoomRandomizer.findRandomRoom();} 052 } 053}