Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JAVA] help thread punteggio

    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

    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; }
    		}
    Il problema è che mi restituisce sempre il punteggio pari a 1. Come devo fare? Questa è la classe Sedia:
    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;
    Attendo una celere risposta. Grazie a tutti.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Per favore, usa titoli più significativi e indica l'errore che ottieni quando richiedi aiuto.

    Hai due discussioni attive che trattano sostanzialmente lo stesso progetto e nelle quali il "panorama" di ciò che chiedi cambia da una risposta all'altra, senza poter seguire correttamente l'evoluzione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.