Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    5

    Prove di programmazione

    Faccio una premessa, ho iniziato da pochissimo a studiare il php e quindi a fare dei piccoli esperimenti.
    Mi sono trovato subito a confrontarmi con dei piccoli problemi.

    Ho provato a scrivere due righe per effettuare la simulazione del lancio di due dadi con la visualizzazione del risultato di entrambi, facendo ripetere il ciclo per 5 volte.

    Il problema si presenta al momento della visualizzazione nel browser, difatti al primo passaggio mi fa vedere il risultato di entrambi i dadi mentre negli altri passaggi solo del secondo.
    Qualcuno sa spiegarmi gentilmente dove sbaglio ?

    <?php
    for ($lanci=0; $lanci<=4; $lanci++)
    {

    $dado1 = Rand(1,6);
    $dado2 = Rand(1,6);
    echo "Dado 1 = " . $dado1 . "
    ";
    echo "Dado 2 = " . $dado2 . "
    ";
    if($dado1>$dado2)
    {
    echo "Vince il dado 1" . "<br/";
    }
    elseif($dado2>$dado1)
    {
    echo "Vince il dado 2" . "<br/";
    }
    else
    {
    echo "Pareggio" . "<br/";
    }
    }
    echo "fine partita";
    ?>

  2. #2
    Potrebbe capitare che il primo rand restituisca sempre lo stesso numero, e quindi che tu non noti differenze.
    Fossi in te, metterei un contatore di lanci per rendermene conto.
    Fai così:

    Codice PHP:
    <?php
    for ($lanci=1$lanci<=5$lanci++) {

       echo 
    "<h3>Lancio n&deg; $lanci</h3>";
       
    $dado1 Rand(1,6);
       
    $dado2 Rand(1,6);
       echo 
    "Dado 1 = " $dado1 "
    "
    ;
       echo 
    "Dado 2 = " $dado2 "
    "
    ;
       if( 
    $dado1 $dado2) {
          echo 
    "Vince il dado 1" "
    "
    ;
       } elseif (
    $dado2 $dado1) {
          echo 
    "Vince il dado 2" "
    "
    ;
       } else {
          echo 
    "Pareggio" "
    "
    ;
       }
       echo 
    "<hr />";
    }
    echo 
    "<h3>Fine partita</h3>";
    ?>
    Vedi un po' se torna quello che dicevo io?

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    5
    Perfetto grazie mille

  4. #4
    Vedo che sei nuovo del forum, per cui ho pensato sia giusto dirtelo.
    Nel caso si risolva un problema scritto in uno dei thread, è buona norma segnalarlo ad eventuali utenti futuri che potrebbero avere il tuo stesso problema.
    Per cui, potrebbe essere buono se dicessi cosa hai risolto applicando i consigli che ti ho dato nella mia risposta.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    5

    Simulazione dadi [risolto]

    Hai ragione, chiedo perdono.
    Dunque se dovessi dire che ho inquadrato il preoblema perfettamente non direi la verità, non ho capito bene se è per il contatore, per il separatore che hai inserito tra i risultati dei lanci o per il tag h3 ma adesso viene visualizzato tutto correttamente.
    Se a qualcuno potesse essere utile a scopo didattico inserisco il codice con qualche aggiunta supplementare.
    Grazie ancora alcio74


    <?php
    $punti1 = 0;
    $punti2 = 0;

    for ($lanci=1; $lanci<=5; $lanci++) {

    echo "<h3>Lancio n&deg; $lanci</h3>";
    $dado1 = Rand(1,6);
    $dado2 = Rand(1,6);
    echo "Dado 1 = " . $dado1 . "
    ";
    echo "Dado 2 = " . $dado2 . "
    ";
    if( $dado1 > $dado2) {
    echo "Vince il dado 1" . "
    ";
    $punti1++;
    } elseif ($dado2 > $dado1) {
    echo "Vince il dado 2" . "
    ";
    $punti2++;
    } else {
    echo "Pareggio" . "
    ";
    }
    echo "<hr />";
    }
    echo "<h3>Fine partita</h3>";
    echo "Punti giocatore 1 = " . $punti1 . "
    " ;
    echo "Punti giocatore 2 = " . $punti2 . "
    " ;
    if ($punti1 > $punti2) {
    echo "<h3>Vince la partita il giocatore 1</h3>" . "
    ";
    }
    elseif ($punti1 < $punti2) {
    echo "<h3>Vince la partita il giocatore 2</h3>" . "
    ";
    }
    else {
    echo "<h3>La partita è finita in parità</h3>" . "
    ";
    }
    ?>

  6. #6
    Originariamente inviato da alcio74
    Potrebbe capitare che il primo rand restituisca sempre lo stesso numero, e quindi che tu non noti differenze.
    Fossi in te, metterei un contatore di lanci per rendermene conto.
    Beh.... quelli sono marcatori HTML, per cui non fanno nulla allo script PHP!
    Ti avevo detto di inserirli, perché ti potessi rendere conto se lo script generasse dopo un numero X di lanci, sempre lo stesso risultato.
    Magari non lo sai, ma in programmazione le funzioni che generano numeri casuali, non sono "perfette" e generano sempre dei numeri pseudo-casuali.... figurati se poi limiti il tutto a sei sole possibilità!
    Ora è un po' lunga da spiegare, magari se fai una ricerchina con Google capisci un po' meglio questo concetto... visto che a dire il vero.... anche per me è stato un po' ostico all'inizio.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.