Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package it.uniroma3.diadia;
- /**
- * Questa classe modella una partita del gioco
- *
- * @author Paolo Merialdo, Valter Crescenzi (da un'idea di Michael Kolling and David J. Barnes)
- * @see Stanza
- * @version 0.1
- */
- public class Partita {
- private Stanza stanzaCorrente;
- private Stanza stanzaVincente;
- private boolean finita;
- private int cfu;
- private static int CFU_INIZIALI = 20;
- public Partita(){
- creaStanze();
- this.finita = false;
- this.cfu = CFU_INIZIALI;
- }
- /**
- * Crea tutte le stanze e le porte di collegamento
- */
- private void creaStanze() {
- /* crea gli attrezzi */
- Attrezzo lanterna = new Attrezzo("lanterna",3);
- Attrezzo osso = new Attrezzo("osso",1);
- /* crea stanze del labirinto */
- Stanza atrio = new Stanza("Atrio");
- Stanza aulaN11 = new Stanza("Aula N11");
- Stanza aulaN10 = new Stanza("Aula N10");
- Stanza laboratorio = new Stanza("Laboratorio Campus");
- Stanza biblioteca = new Stanza("Biblioteca");
- /* collega le stanze */
- atrio.impostaUscita("nord", biblioteca);
- atrio.impostaUscita("est", aulaN11);
- atrio.impostaUscita("sud", aulaN10);
- atrio.impostaUscita("ovest", laboratorio);
- aulaN11.impostaUscita("est", laboratorio);
- aulaN11.impostaUscita("ovest", atrio);
- aulaN10.impostaUscita("nord", atrio);
- aulaN10.impostaUscita("est", aulaN11);
- aulaN10.impostaUscita("ovest", laboratorio);
- laboratorio.impostaUscita("est", atrio);
- laboratorio.impostaUscita("ovest", aulaN11);
- biblioteca.impostaUscita("sud", atrio);
- /* pone gli attrezzi nelle stanze */
- aulaN10.addAttrezzo(lanterna);
- atrio.addAttrezzo(osso);
- // il gioco comincia nell'atrio
- stanzaCorrente = atrio;
- stanzaVincente = biblioteca;
- }
- public Stanza getStanzaVincente() {
- return stanzaVincente;
- }
- public void setStanzaCorrente(Stanza stanzaCorrente) {
- this.stanzaCorrente = stanzaCorrente;
- }
- public Stanza getStanzaCorrente() {
- return this.stanzaCorrente;
- }
- /**
- * Restituisce vero se e solo se la partita e' stata vinta
- * @return vero se partita vinta
- */
- public boolean vinta() {
- return this.getStanzaCorrente()== this.getStanzaVincente();
- }
- /**
- * Restituisce vero se e solo se la partita e' finita
- * @return vero se partita finita
- */
- public boolean isFinita() {
- return finita || vinta() || (cfu == 0);
- }
- /**
- * Imposta la partita come finita
- *
- */
- public void setFinita() {
- this.finita = true;
- }
- public int getCfu() {
- return this.cfu;
- }
- public void setCfu(int cfu) {
- this.cfu = cfu;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment