tyrion

Partita.java

Apr 6th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.89 KB | None | 0 0
  1. package it.uniroma3.diadia;
  2.  
  3. /**
  4.  * Questa classe modella una partita del gioco
  5.  *
  6.  * @author  Paolo Merialdo, Valter Crescenzi (da un'idea di Michael Kolling and David J. Barnes)
  7.  * @see Stanza
  8.  * @version 0.1
  9.  */
  10. public class Partita {
  11.     private Stanza stanzaCorrente;
  12.     private Stanza stanzaVincente;
  13.     private boolean finita;
  14.     private int cfu;
  15.     private static int CFU_INIZIALI = 20;
  16.  
  17.     public Partita(){
  18.         creaStanze();
  19.         this.finita = false;
  20.         this.cfu = CFU_INIZIALI;
  21.     }
  22.  
  23.     /**
  24.      * Crea tutte le stanze e le porte di collegamento
  25.      */
  26.     private void creaStanze() {
  27.  
  28.         /* crea gli attrezzi */
  29.         Attrezzo lanterna = new Attrezzo("lanterna",3);
  30.         Attrezzo osso = new Attrezzo("osso",1);
  31.  
  32.         /* crea stanze del labirinto */
  33.         Stanza atrio = new Stanza("Atrio");
  34.         Stanza aulaN11 = new Stanza("Aula N11");
  35.         Stanza aulaN10 = new Stanza("Aula N10");
  36.         Stanza laboratorio = new Stanza("Laboratorio Campus");
  37.         Stanza biblioteca = new Stanza("Biblioteca");
  38.  
  39.         /* collega le stanze */
  40.         atrio.impostaUscita("nord", biblioteca);
  41.         atrio.impostaUscita("est", aulaN11);
  42.         atrio.impostaUscita("sud", aulaN10);
  43.         atrio.impostaUscita("ovest", laboratorio);
  44.         aulaN11.impostaUscita("est", laboratorio);
  45.         aulaN11.impostaUscita("ovest", atrio);
  46.         aulaN10.impostaUscita("nord", atrio);
  47.         aulaN10.impostaUscita("est", aulaN11);
  48.         aulaN10.impostaUscita("ovest", laboratorio);
  49.         laboratorio.impostaUscita("est", atrio);
  50.         laboratorio.impostaUscita("ovest", aulaN11);
  51.         biblioteca.impostaUscita("sud", atrio);
  52.  
  53.         /* pone gli attrezzi nelle stanze */
  54.         aulaN10.addAttrezzo(lanterna);
  55.         atrio.addAttrezzo(osso);
  56.  
  57.         // il gioco comincia nell'atrio
  58.         stanzaCorrente = atrio;  
  59.         stanzaVincente = biblioteca;
  60.     }
  61.  
  62.     public Stanza getStanzaVincente() {
  63.         return stanzaVincente;
  64.     }
  65.  
  66.     public void setStanzaCorrente(Stanza stanzaCorrente) {
  67.         this.stanzaCorrente = stanzaCorrente;
  68.     }
  69.  
  70.     public Stanza getStanzaCorrente() {
  71.         return this.stanzaCorrente;
  72.     }
  73.  
  74.     /**
  75.      * Restituisce vero se e solo se la partita e' stata vinta
  76.      * @return vero se partita vinta
  77.      */
  78.     public boolean vinta() {
  79.         return this.getStanzaCorrente()== this.getStanzaVincente();
  80.     }
  81.  
  82.     /**
  83.      * Restituisce vero se e solo se la partita e' finita
  84.      * @return vero se partita finita
  85.      */
  86.     public boolean isFinita() {
  87.         return finita || vinta() || (cfu == 0);
  88.     }
  89.  
  90.     /**
  91.      * Imposta la partita come finita
  92.      *
  93.      */
  94.     public void setFinita() {
  95.         this.finita = true;
  96.     }
  97.  
  98.     public int getCfu() {
  99.         return this.cfu;
  100.     }
  101.  
  102.     public void setCfu(int cfu) {
  103.         this.cfu = cfu;    
  104.     }  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment