Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88

    Metodo non ritorna valori

    Salve a tutti ho un problema con il metodo potenza , infatti passandogli la stringa ad esempio Asso non mi restituisce il valore appropriato ma sempre zero...non riesco a capire dove sta l'errore.


    codice:
    public class Regole {
               private Carta giocata;
               private String a,b,c,d,e,f,g,h,i,l,conf;
               
        public void Regole(){
                giocata= new Carta();
                a="Asso";
                b="Tre";
                c="Re";
                d="Cavallo";
                e="Donna";
                f="Sette";
                g="Sei";
                h="Cinque";
                i="Quattro";
                l="Due";
        }
        public int potenza(String s){
    
            if(s.equals(a))
                    return 10;
            if(s.equals(b))
                    return 9;
            if(s.equals(c))
                    return 8;
            if(s.equals(d))
                    return 7;
            if(s.equals(e))
                    return 6;
            if(s.equals(f))
                    return 5;
            if(s.equals(g))
                    return 4;
            if(s.equals(h))
                    return 3;
            if(s.equals(i))
                    return 2;
            if(s.equals(l))
                    return 1;
            else 
                return 0;
            }
        }

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    a parte che una soluzione di questo tipo non è delle migliori (anzi è proprio brutta da vedere), il punto è che

    codice:
    public int potenza(String carta){
       int ret = 0; 
       if (carta.equals(asso)){
         ret = 10; 
       }else if (carta.equals(uno)){}
    //ecc
    return ret; 
    }

    ma sei sicuro che scrivi bene?
    L'alternativa sarebbe da usare una enum
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    in che senso sicuro che scrivo bene?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non so quale sia l'errore, ma crearsi una mappa chiave/valore? "Asso"/10, "Tre"/9 ecc... con una riga di codice sei a posto...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    L'errore l'ho risolto così:
    codice:
     if(s.equals("Asso"))
                    return 10;
    però strano se gli passavo la stringa non funzionava mah!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    HashMap hm = new HashMap();
    
    public void Regole(){
    a.put("Asso",new Integer(9));
    ....
    }
    
    public int potenza(String s){
    return ((Integer)hm.get(s)).intValue() ;
    }
    Non è meglio?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Si sicuramente!

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    codice:
    public enum Carte {
    
    		UNO( "UNO"), 
    		DUE( "DUE"), 
    		TRE( "TRE" ), 
    		QUATTRO( "QUATTRO"),
    		CINQUE ("CINQUE");
    		
    
    		String type;
    
    		private Carte(String type) {
    			this.type = type;
    		}
    
    		@Override
    		public String toString() {
    			return type;
    		}
    }
    e puoi benissimo tenere conto che UNO vale 1, DUE vale 2 ecc

    Se guardi cosa sono le enum e come funzionano vedi che questo approccio è il migliore (per tanti motivi).

    Detto questo completa questa enum e prova ad usarla
    RTFM Read That F*** Manual!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Ok ok grazie mille ci provo =)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.