Salve ragazzi.
Mi sono bloccato in un punto. Non riesco ad aggiornare il punteggio di un gioco. Come devo fare? questo è il codice del run
Il problema è che mi restituisce sempre il punteggio pari a 1. Come devo fare? Questa è la classe Sedia:codice:public void run(){ synchronized(o){ try{ o.wait(); System.out.println("Gioco. Io sono:"+name); sleep(1000); System.out.println("ciao!"); for (int i=0; i<kSedie; i++){ String sed="sedia"+i; /*OccupaSedia disponibile = new OccupaSedia(nPart,kSedie,nSess); Sedia sedia = new Sedia(sed);*/ //sleep(1000); System.out.println("Nome sedia:"+sedia.getNomeSedia()); System.out.println("Numero sedie disponibili:"+disponibile.getSedie()); //sleep(1000); System.out.println("Occupato:"+sedia.getStato("sedia"+i)); //sleep(1000); if (sedia.getStato(sedia.getNomeSedia())==false){ sedia.occupa(name,sedia.getNomeSedia(),sedia.getPunteggio()); disponibile.decrementaSedie(); //sleep(1000); System.out.println(sedia.getNomeSedia()+" "+""+sedia.getPersona()+"Punteggio:"+sedia.getPunteggio()); //sleep(1000); System.out.println("Numero sedie disponibili:"+disponibile.getSedie()); punteggio++; System.out.println("totale"+punteggio); stop(); } else{ System.out.println("Sedia non disponibile"); //i++; } } o.notifyAll(); } catch(InterruptedException e) { return; } }
Attendo una celere risposta. Grazie a tutti.codice:public class Sedia extends Thread { public Sedia(String name){ nomeSedia=name;} public String getNomeSedia(){ return nomeSedia; } public int getPunteggio(){ return punteggio; } public boolean getStato(String sedia){ return statoSedia; } public String getPersona(){ return persona; } public synchronized void occupa(String pers, String nameSedia, int punt){ try{ statoSedia=true; persona = pers; nomeSedia = nameSedia; punteggio=punt+1; notifyAll(); } catch(Exception x){System.out.println("Lanciata eccezione metodo occupa");} } private String nomeSedia; private String persona; private boolean statoSedia; private int punteggio;

Rispondi quotando