Visualizzazione risultati 1 fino 16 di 16

Discussione: [Javascript] Gioco dei Numeri e Pagina Protetta da Password

  1. #1
    Guest

    Predefinito [Javascript] Gioco dei Numeri e Pagina Protetta da Password

    Salve!

    Vorrei sapere alcune cose riguardanti questo codice che simula un gioco di dadi. Il codice è questo:

    Codice:
    <HTML>
         <HEAD>
             <SCRIPT Language="JavaScript">
                  F=prompt("Ciao!!! Qual è il tuo nome?)
                  alert("CIAO " + F +"!!! Benvenuto. Premi AVVIA GIOCO per iniziare: buon divertimento")
                  function Inizia()
                  {
                      Anima1()
                      Anima2()
                      Anima3()
                  }
                  var Immagini= new Array("1.gif","2.gif","3.gif","4.gif","5.gif","6.gif")
                  var X=0
                  function Anima1()
                  {
                      if(X == 5)
                          X=0
                      else
                          X++
                      document.immagine1.src= Immagini[X]
                      T=setTimeout("Anima1()",10)
                   }
                  var P=0
                  function Anima2()
                  {
                      if(P == 5)
                          P=0
                      else
                          P++
                      document.immagine2.src= Immagini[P]
                      L=setTimeout("Anima2()",10)
                   }
                  var A=0
                  function Anima3()
                  {
                      if(A == 5)
                          A=0
                      else
                          A++
                      document.immagine3.src= Immagini[A]
                      T=setTimeout("Anima3()",10)
                   }
                   function Chiudi1()
                   {
                        clearTimeout(T)
                   }
                   function Chiudi2()
                   {
                        clearTimeout(L)
                   }
                   function Chiudi3()
                   {
                        clearTimeout(R)
                   }
              </SCRIPT>
          </HEAD>
          <BODY STYLE="BACKGROUND:aqua">
             <P STYLE="text-align:center"><BR><BR><BR>
             <IMG NAME="immagine1" SRC="1.gif">&nbsp
             <IMG NAME="immagine2" SRC="1.gif">&nbsp
             <IMG NAME="immagine3" SRC="1.gif"></P><BR><BR>
             <P STYLE="text-align:center">
             <INPUT TYPE="button" VALUE="Avvia gioco" onClick="Inizia()">
             <INPUT TYPE="button" VALUE="Ferma il primo dado" onClick="Chiudi1()">
             <INPUT TYPE="button" VALUE="Ferma il secondo dado" onClick="Chiudi2()">
             <INPUT TYPE="button" VALUE="Ferma il terzo dado" onClick="Chiudi3()">
         </BODY>
    </HTML>
    Vorrei chiedere:
    1. Perchè non va?
    2. A cosa serve questa parte?
    Codice:
                  F=prompt("Ciao!!! Qual è il tuo nome?)
    3. Questa parte non dovrebbe far apparire un allarme?
    Codice:
                  alert("CIAO " + F +"!!! Benvenuto. Premi AVVIA GIOCO per iniziare: buon divertimento")
    4. Vorrei far apparire un messaggio se tutti i tre dadi si fermano con lo stesso risultato, come si può fare?

    Questa è la pagina, potete vedere perchè non va?
    http://hpfc.altervista.org/gioco.numeri.html

    ---------------------------------------------------

    La mia Professoressa d'Informatica mi ha detto che certe pagine HTML possono essere protette da password anche in forma di Javascript. Sapete come si può fare?

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Si è vero, si può proteggere una pagina con password utilizzando i JavaScript, ma nella maggior parte dei casi la password può essere scoperta. Comunque se vuoi un esempio (il primo che mi è venuto in mente) puoi guardare qui.
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    1. Nella prima riga hai scritto male il codice, ti sei dimenticato un double quote:
    Codice:
    F=prompt("Ciao!!! Qual è il tuo nome?")
    Inoltre, se non dichiari esternamente le variabili di time-out T, L, R (quest'ultima non l'hai inizializzata bene nella funzione Anima3), non potrai bloccarli attraverso clearTimeout().

    2. Quella riga visualizza una finestra di prompt, in cui ti viene stampato "Ciao!!! Qual è il tuo nome?", c'è una casellina di testo dove puoi rispondere, e due pulsanti: se rispondi OK il dato viene salvato in F, in caso contrario a F è restituito null. Se guardi bene la riga successiva, con un po' di intuito forse ci saresti arrivato da solo...

    3. Più o meno... si chiama finestra di messaggio. Comunque è una semplice finestrina contenente solo il messaggio e un pulsante OK.

    4. Per questo punto devi modificare un pochino lo script nel modo seguente:
    Codice:
                  F=prompt("Ciao!!! Qual è il tuo nome?")
                  alert("CIAO " + F +"!!! Benvenuto. Premi AVVIA GIOCO per iniziare: buon divertimento")
                  function Inizia()
                  {
                      T = L = R = true
                      Anima1()
                      Anima2()
                      Anima3()
                  }
                  var Immagini= new Array("1.gif","2.gif","3.gif","4.gif","5.gif","6.gif")
    var T = false, L = false, R = false
                  var X=0
                  function Anima1()
                  {
                      if(X == 5)
                          X=0
                      else
                          X++
                      document.immagine1.src= Immagini[X]
                      if (T) setTimeout("Anima1()",10)
                   }
                  var P=0
                  function Anima2()
                  {
                      if(P == 5)
                          P=0
                      else
                          P++
                      document.immagine2.src= Immagini[P]
                      if (L) setTimeout("Anima2()",10)
                   }
                  var A=0
                  function Anima3()
                  {
                      if(A == 5)
                          A=0
                      else
                          A++
                      document.immagine3.src= Immagini[A]
                      if (R) setTimeout("Anima3()",10)
                   }
                   function Chiudi1()
                   {
                        T = false
                        testVittoria ()
                   }
                   function Chiudi2()
                   {
                        L = false
                        testVittoria ()
                   }
                   function Chiudi3()
                   {
                        R = false
                        testVittoria ()
                   }
    function testVittoria ()
    {
       if (!T && !L && !R && X == P && P == A)
          alert ("Yahtzee!!!");
    }
    5. Esistono modi per proteggere con password via JavaScript, ma sono piuttosto deboli e facilmente aggirabili (ad esempio, disattivando JavaScript sul browser). Questo è uno degli esempi più semplici (da inserire nel corpo della pagina):
    Codice:
    <script type="text/javascript">
    var pwd = "la_vera_password"
    var test = 3 // numero di tentativi
    while (test > 0)
    {
       if (prompt ("Inserisci la password...") != pwd)
          test--
    }
    if (test == 0)
       document.location.href = "addio.htm"
    </script>
    dove addio.htm è una pagina HTML che avrai appositamente preparato per "invitare l'intruso a farsi un giro altrove" :-D

    Spero di aver risposto bene a tutte le domande... stammi bene...
    Ultima modifica di dementialsite : 19-09-2007 alle ore 17.44.43
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    Guest

    Predefinito

    Grazie ad entrambi! Grazie mille! ^^

    EDIT:
    Scusate il doppio post, ma se modifico il messaggio precedente è difficile che venga notato! ^^''

    Vorrei chiedervi tre cose.

    1) Guardate questa pagina http://hpfc.altervista.org/gioco.calderoni.html Ho provato a modificare ulteriormente il codice javascript inserendo altri due numeri (separati dagli altri), ma quelli non vanno. Potreste guardare il codice e spiegarmi gli errori che ho fatto?

    2) dementialsite, dovresti spiegarmi meglio il codice che mi hai dato: la password la metto ma non mi fa entrare, mi fa entrare invece solo se clicco su OK tante volte quanti sono i tentativi massimi. Guarda! o.o E' normale o c'è qualcosa che non va? La password è password.

    3) Vorrei un codice password (come quello di prima) che però mandasse chi sbaglia ad una pagina e chi fa bene a quella dove c'è la password. Ma non una password che seinserita manda ad un'altra pagina! Vorrei una password che se inserita manda alla pagina dove c'è il codice.

    Graziein anticipo! ;)

    Purtroppo le regole sono queste: niente messaggi consecutivi.
    Ultima modifica di seneca : 21-09-2007 alle ore 16.29.34

  5. #5
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da hpfc Visualizza messaggio
    2) dementialsite, dovresti spiegarmi meglio il codice che mi hai dato: la password la metto ma non mi fa entrare, mi fa entrare invece solo se clicco su OK tante volte quanti sono i tentativi massimi. Guarda! o.o E' normale o c'è qualcosa che non va? La password è password.
    A me invece non fa entrare per un numero infinito di volte, fino a che non spingo annulla e mi manda sulla pagina classifica.
    Ultima modifica di seneca : 21-09-2007 alle ore 16.42.01


    -- Aut Roma Aut Nihil!

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Provo a riscriverti il codice della password (devo aver fatto un po' di casino sopra... :-D)
    Codice:
    <script type="text/javascript">
    var pwd = "la_vera_password"
    var test = 3 // numero di tentativi
    while (test > 0)
    {
       if (prompt ("Inserisci la password...") == pwd)
          break;
       test--
    }
    if (test == 0)
       document.location.href = "addio.htm"
    </script>
    In teoria, adesso dovrebbe funzionare così: se si inserisce la password corretta (entro 3 tentativi), allora si carica la pagina con lo script di protezione. In caso contrario, si carica la pagina addio.htm...

    Quanto al gioco dei calderoni, ci ho dato un'occhiata al codice e mi sembra corretto... quale sarebbe l'errore? A proposito: ti consiglio di usare dei nomi di variabile un pochino più sensati di F, P, S, T, W, X... se qualcuno deve analizzarti il codice, cerca di non fargli girare troppo la testa... :-D

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    Guest

    Predefinito

    Benissimo! =D
    Grazie mille! ^^

    Per il gioco dei calderoni, potresti consigliarmi qualcosa?

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Credo di aver trovato l'errore: ti riporto qui le parti significative del tuo codice:
    Codice:
                  function Inizia2()
                  {
                      F = S = true
                      Anima4()
                      Anima5()
                  }
    ...
                  var Immagini2= new Array("/immagini/numeri/1calderone.gif","/immagini/numeri/3calderone.gif","/immagini/numeri/6calderone.gif","/immagini/numeri/4calderone.gif","/immagini/numeri/5calderone.gif","/immagini/numeri/2calderone.gif")
    var Z = false, W = false
    ...
                  var F=0
                  function Anima4()
                  {
                      if(F == 5)
                          F=0
                      else
                          F++
                      document.immagine4.src= Immagini2[F]
                      if (Z) setTimeout("Anima4()",100)
                   }
                  var S=0
                  function Anima5()
                  {
                      if(S == 5)
                          S=0
                      else
                          S++
                      document.immagine5.src= Immagini2[S]
                      if (W) setTimeout("Anima5()",100)
                   }
    ...
                   function Chiudi4()
                   {
                        Z = false
                        testVittoria2 ()
                   }
                   function Chiudi5()
                   {
                        W = false
                        testVittoria2 ()
                   }
    ...
                   function testVittoria2 ()
                   {
                   if (!Z && !W && Z == W)
                   alert ("Due brodaglie uguali: hai vinto!!!");
                   }
    Stai confondendo le variabili F e S (che dovrebbero essere i valori dei "dadi") con i flag Z e W (che dovrebbero indicare quando il gioco è in corso oppure no). Devi quindi sistemare un po' di cosette... riguardati bene il codice con i 3 dadi e dovresti arrivarci...

    Stammi bene...

    P.S. Vedi cosa dicevo a proposito dei nomi TROPPO stringati...? :-D
    Ultima modifica di dementialsite : 22-09-2007 alle ore 14.21.46
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  9. #9
    Guest

    Predefinito

    Ah, capito <_< XD
    Grazie ancora!

    PS: quali variabili e flag mi consigli al posto delle lettere?

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da hpfc Visualizza messaggio
    PS: quali variabili e flag mi consigli al posto delle lettere?
    Di solito si utilizzano nomi di variabile che rappresentato l'oggetto di cui si parla.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    Guest

    Predefinito

    Quindi invece delle lettere posso mettere ad esempio Calderone1, Calderone2, ecc.?

  12. #12
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Sì, puoi fare così.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  13. #13
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da hpfc Visualizza messaggio
    Quindi invece delle lettere posso mettere ad esempio Calderone1, Calderone2, ecc.?
    In generale usa nomi intuitivi che ti aiutino a capire il programma subito, in caso di rivisitazione del codice a distanza di tempo


    -- Aut Roma Aut Nihil!

  14. #14
    Guest

    Predefinito

    Per i flag posso fare ugualmente?

  15. #15
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da hpfc Visualizza messaggio
    Per i flag posso fare ugualmente?
    Sempre variabili sono...


    -- Aut Roma Aut Nihil!

  16. #16
    Guest

    Predefinito

    Molto bene! Vi ringrazio ancora!
    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •