Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16

Discussione: Esercizio con Java

  1. #11
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,121
    La classe senza main compila, ma è sbagliata in diversi punti:
    1) Stai usando metodi statici: per quel che deve fare non è sbagliato, ma non ha molto senso, dovendo essere istanziata.

    2) Non hai usato le parentesi graffe nelle if, generando una serie che non è logicamente funzionante (non come tu ti aspetti, almeno). In più hai anche messo un punto e virgola dopo la chiusa tonda di una condizione, facendo sì che l'istruzione successiva venga eseguita praticamente sempre: if (computer == 3); (la scritta "Sasso rompe forbice... vince Rudy" verrà stampata sempre)

    Ti consiglio di ripassare per bene la sintassi del costrutto if: le graffe si possono anche non usare, ma in tal caso si può utilizzare una ed una sola istruzione su quel ramo di esecuzione. Le cose, quindi, si complicano (dal punto di vista della lettura del codice e della sua manutenzione) se quell'unica istruzione è un if con altri rami. Il mio consiglio è quello di utilizzare SEMPRE le graffe in modo da avere sempre sotto controllo la struttura.

    Un consiglio anche sull'indentazione: impara ad usarla. Ti salverà da brutte situazioni.


    Per quanto riguarda la classe col main non compila per ovvie ragioni: hai preso il mio codice e hai tenuto solo il main. Nel mio codice io faccio uso di due metodi che sono dichiarati nella stessa classe, mentre tu li hai correttamente spostati nella classe MioGioco... di conseguenza, dovrai richiamarli dall'oggetto che hai istanziato all'inizio:

    codice:
    int sceltaDiRudy = miogoco.sceltaRudy();
    miogioco.valutaRisultato(sceltaUtente, sceltaDiRudy, nomeUtente);

    Qui mi sento di suggerirti di ripassare il capitolo riguardante i metodi: cosa sono, a cosa servono, come si usano e come si richiamano.


    PS: usa i tag CODE per postare il codice (il pulsantino '#' che vedi sopra la casella in cui scrivi... puoi anche scriverli a mano): il forum altrimenti perde indentazione e formattazione del codice, rendendolo praticamente illeggibile agli altri.

    Ciao.
    Ultima modifica di LeleFT; 05-11-2019 a 15:49
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  2. #12
    Utente di HTML.it
    Registrato dal
    Nov 2019
    Messaggi
    23
    Ciao, prima di tutto scusa, non sapevo dei tag Code, sono nuova del sito: la prossima volta gli userò. Riguardo al static, ho usato questo, perché non è stato spiegato ancora nel dettaglio cosa sono, magari userò solo void. Riguardo allo sbaglio fatto nell'istanziare, credo di aver capito adesso, me lo fecero notare anche al corso, ma mi era sfuggito. riguardo agli if, non sapevo ci volessero le parentesi graffe, ora le aggiungo e tolgo il punto e virgola. Mille grazie! Provo a correggere!

  3. #13
    Utente di HTML.it
    Registrato dal
    Nov 2019
    Messaggi
    23
    Ciao, dicevi così? Però continua a darmi errore. Spero di aver capito per il tag code qual è il pulsante! Grazie!


    codice:
    public class Applicazione1 {public static void main(String args []) {
    MioGioco miogioco = new MioGioco();
    sceltaDiRudy = miogioco.sceltaRudy();
    Scanner scanner = new Scanner(
    System.in);
    System.out.println("Benvenuto! pronto a giocare con rudy? Presentati scrivendo il tuo nome e premi invio!");
    String nomeUtente = scanner.nextLine();
    int sceltaUtente = 0;
    do {
    System.out.println("Ciao! Digita 1 per carta, 2 per forbici e 3 per sasso");
    sceltaUtente = scanner.nextInt();
    scanner.nextLine();
    }
    while ((sceltaUtente < 1) || (sceltaUtente > 3));
    int sceltaDiRudy = sceltaRudy();
    miogioco.valutaRisultato(sceltaUtente, sceltaDiRudy, nomeUtente);
    }
    }
    Ultima modifica di LeleFT; 06-11-2019 a 10:30 Motivo: Aggiunti i tag CODE

  4. #14
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,121
    Controlla bene: hai quasi correttamente richiamato miogioco.sceltaRudy() (anche se la variabile "sceltaDiRudy" non l'hai dichiarata, quindi non puoi assegnargli un valore) appena dopo aver istanziato la classe, ma hai lasciato anche la vecchia chiamata (penultima riga) che dichiara la variabile, ma chiama un metodo che non esiste (perchè esiste solo nella classe MioGioco).
    Ora, poco importa dove fai la chiamata al metodo (puoi farla appena dopo l'istanziazione della classe MioGioco oppure appena prima di valutare il risultato), ma la penultima riga così com'è è sbagliata e va tolta.

    Nel mio precedente post ti avevo scritto esattamente come modificare le ultime due righe (era tutto ciò che andava fatto).


    PS: no, non hai usato i tag CODE... li ho aggiunti io. In ogni caso non c'è ancora l'indentazione del codice: impara ad usarla.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #15
    Utente di HTML.it
    Registrato dal
    Nov 2019
    Messaggi
    23
    Ciao, ok, grazie! fatto! C'è solo un piccolo problema: in alcuni punti non mi dice solo il risultato, ma dice più cose contemporaneamente. Esempio: carta con carta pareggio, forbice taglia carte vince... quindi legge tutto di seguito, mentre in altri punti fa la giocata correttamente. Cosa ho potuto sbagliare? Ho dato una sbirciata veloce e sembrerebbe scritto il tutto correttamente. Sono riuscita a mettere anche le parentesi graffe correttamente: almeno credo!
    P.S. per il tag code, la prossima volta ci riprovo, magari mi viene meglio! (sorriso)

  6. #16
    Utente di HTML.it
    Registrato dal
    Nov 2019
    Messaggi
    23
    Rieccomi, risolto il problema che non faceva una sola giocata, avevo sbagliato proprio a scrivere le varie combinazioni, adesso sembra che vada tutto bene! dovrò solo aggiungere il codice per farlo continuare senza che finisca dopo la prima giocata!

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