Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Morra cinese

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    3

    Morra cinese

    Mi sono appena avvicinato al linguaggio Java e stavo provando ad allenarmi con la creazione di un semplice gioco ovvero la morra cinese...

    codice:
    var scelta1 = prompt("Giocatore1 scegli (1)Rock, (2)Paper or (3)Scissors");
    var scelta2 = prompt("Giocatore2 scegli (1)Rock, (2)Paper or (3)Scissors");
    var risultato = function (Giocatore1,Giocatore2) 
    {
    if (Giocatore1 === Giocatore2){console.log("Pareggio.");}
    else { }
    };
    
    risultato (scelta1,scelta2);
    Mi trovo in difficolta per il proseguimento del codice, ho fatto varie prove ma nessuna è andata a buon fine...non so come mettere in relazione le due scelte in casi differenti dall'uguaglianza...provando con le operazioni ad un certo punto ottengo 2 risultati Vinto/Perso poichè ci sono più operazioni possibili che danno lo stesso risultato perciò non è una strada percorribile...qualcuno può darmi una mano?
    -To be or not to be!-

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    3
    codice:
    var scelta1 = prompt("Giocatore1 scegli (1)Rock, (2)Paper or (3)Scissors");
    var scelta2 = prompt("Giocatore2 scegli (1)Rock, (2)Paper or (3)Scissors");
    var risultato = function (Giocatore1,Giocatore2) 
    {
    if (Giocatore1 === Giocatore2) { console.log("Pareggio."); }
    else 
    { if (Giocatore1 === "1") { if (Giocatore2 === "2") 
    { console.log("Hai perso."); }
    else{}
    if (Giocatore2 === "3") { console.log("Hai vinto."); } 
    else{} } 
    else { if (Giocatore1 === "2") 
    { if (Giocatore2 === "1") { console.log("Hai vinto."); } 
    else{}
    if (Giocatore2 === "3") { console.log("Hai perso."); } 
    else{} } 
    else { if (Giocatore1 === "3") 
    { if (Giocatore2 === "1") { console.log("Hai perso."); } 
    else{} 
    if (Giocatore2 === "2") { console.log("Hai vinto."); } 
    else{} } 
    else{} } } }
    }; 
    
    risultato (scelta1,scelta2);
    Scusate ho risolto così Grazie lo stesso...comunque se avete consigli per migliorare/semplificare il codice li accetto volentieri l''importante è che non si faccia riferimento ad argomenti più avanzati poichè ancora sono alle prime armi.
    -To be or not to be!-

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217
    utilizzando solo una cascata di if ed else, non so se c'è un metodo più pulito per fare quello che chiedi, per futuri casi del genere potresti andarti a vedere la funzione switch, che non è complicatissima, comprende anche l' utilizzo degli if ed else.

    codice:
    var scelta1 = prompt("Giocatore1 scegli (1)Rock, (2)Paper or (3)Scissors");
    var scelta2 = prompt("Giocatore2 scegli (1)Rock, (2)Paper or (3)Scissors");
    var risultato = function (Giocatore1,Giocatore2) 
    {
    if (scelta1 === scelta2) { console.log("Pareggio."); }
    else 
        
       switch(scelta1){
    
           // se hai scelto sasso
           case "1":
                // e l' avversario ha scelto carta
                if(scelta2 =="2")
                    console.log("hai perso")
                // se l' avversario ha scelto forbice
                else
                    console.log("hai vinto")
           
           break;
    
           // se hai scelto carta
           case "2":
                // e l' avversario ha scelto sasso
                if(scelta2 =="1")
                    console.log("hai vinto")
                // se l' avversario ha scelto forbice
                else
                    console.log("hai perso")
           
           break;
    
    
           e via dicendo...
    
       }
    }; 
    
    risultato (scelta1,scelta2);
    lo trovi qui http://www.html.it/pag/15274/lo-switch/


    detto questo potresti in un secondo momento aggiungere un controllo sull' input utente, per controllare se quello che ha inserito è quello che ti aspettavi, cioè un numero tra 1 e 3.
    Ad esempio nel caso un utente digitasse 10 nel codice che ho postato potresti avere un risultato sballato, perchè ci si aspetta un numero compreso tra 1 e 3.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    3
    grazie mille per il consiglio
    -To be or not to be!-

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    http://jsbin.com/ebageb/2/edit

    codice:
    var scelta1 = prompt("Giocatore1 scegli (1)Rock, (2)Paper or (3)Scissors");
    var scelta2 = prompt("Giocatore2 scegli (1)Rock, (2)Paper or (3)Scissors");
    
    function whowin() {
      var moves = {
        "1":"3",
        "2":"1",
        "3":"2"
      };
    
      if (scelta1 === scelta2) {
        return "Pareggio"; 
        /* pareggio */
      }
      else {
        return "Vince player " + 
               ((moves[scelta1] === scelta2)? "1" : "2");
      }
    }
    
    console.log(whowin());
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217
    ti faccio una statua !! Bello il codice!


    Bella anche l' animazione di pacman, complimenti!

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.