Visualizzazione dei risultati da 1 a 10 su 22

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Se ho capito bene, startGame() inizializza il programma e quindi scrive all'interno di alcuni campi nella pagina alcuni valori, compresa la famigerata sommaDadi.
    Ovviamente se non inizializzi ( con var ) sommaDadi all'interno di una funziione qualsiasi, viene usata quella globale se esiste ( è il tuo caso ).
    Da quello che ho compreso questa riempie all'inizio "valoreDadiPlayer" se counter ha un valore pari, e zero lo è ( 0 modulo di 2 = 0 ), quindi inizializza il gioco mettendo 0, il valore di default. Giusto?
    Poi?
    Tu dici che lanciaDadi() viene chiamata alla pressione di un tasto nella pagina, ma che succede dopo?
    lanciaDadi() giustamente fa solo quello, ma non mostra il risultato, come vengono mostrati i risultati dei lanci?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    94
    Ciao innanzitutto grazie per la risposta.

    Si corretto quello che dici.

    In sostanza gestisco i turni con:

    codice:
    if (counter % 2 == 0) {
        document.getElementById("player").style.backgroundColor = "green";
        document.getElementById("valoreDadiPlayer").innerHTML = sommaDadi;
    }
    
    else {
        #turno computer
    }
    Essendo inizialmente counter impostato a 0 il primo tiro spetta a player, che si evidenzier� di verde e dovrebbe visualizzare il risultato (valoreDadiPlayer)

    Successivamente quando clicco di nuovo il button � computer che si deve evidenziare (per indicare il turno) e il risultato deve comparire in sommaDadiComputer.

    Il codice che attualmente c'� in startGame all'inizio era tutto nella funzione lanciadadi e tutto funzionava. Cliccavo una prima volta e il risultato compariva nella colonna player, cliccavo una seconda volta e comprariva nella colonna computer e cosi via.

    Volevo per� suddividere il codice in pi� funzioni per renderlo pi� capibile e infine richiamare le varie funzioni in una sola. Da qui la necessit� di rendere sommaDadi una variabile globale affinch� possa utilizzare il suo valore anche in altri funzioni ma il problema � che rimane sempre 0.

    Eppure come mi hai detto, nella funzione io ho scritto solo sommaDadi (senza var) quindi dovrebbe essere globale.

    Leggendo la tua risposta mi ha fatto venire in mente che il problema sia startGame.

    Nel codice completo postato all'inizio in fondo a tutto io richiamo startGame();

    Forse il problema � che viene eseguito solo una volta e quindi non aggiorna il risultato ad ogni click del button?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    94
    Quote Originariamente inviata da Marcolino's Visualizza il messaggio
    Tu dici che lanciaDadi() viene chiamata alla pressione di un tasto nella pagina, ma che succede dopo?
    lanciaDadi() giustamente fa solo quello, ma non mostra il risultato, come vengono mostrati i risultati dei lanci?
    Si esatto, lanciaDadi() viene chiamata quando clicco sul button. Dopo non succede niente.

    Quando clicco sul button vedo solo cambiare i numeri dei due dadi ma non mi viene restituito la somma.

    Ancor prima di cliccare vedo gi� lo 0 nel campo "valoreDadiPlayer" in quanto prende il valore della variabile globale sommaDadi che ho impostato a 0.. se invece la dichiaro soltanto (var sommaDadi) esce undefined.

    Ora ho fatto un piccola prova:

    codice:
    var sumDice = 0;
    
    
    function lanciaDadi() {
        sumDice = 12;
        #oppure sumDice += 12;
        #oppure window.sumDice = 12;
    }
    
    
    function startGame() {
    	document.getElementById("valoreDadiComputer").innerHTML = sumDice;
    	console.log(sumDice);
    }
    			
    startGame();
    Il risultato � sempre 0 non 12.

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.