Visualizzazione risultati 1 fino 5 di 5

Discussione: Programmino cambia turno?

  1. #1
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito Programmino cambia turno?

    Come creare un programmino per passare il turno durante una giocata fra utenti?

    Ovvero:
    Ci sono tot giocatori, comincia il 1° e cliccandoo un bottone lo fa comparire automaticamente al 2° utente e così via fino a ritornare al 1° giocatore in questo ciclo vizioso di passaggi

    Allora io avrei fatto in questa maniera:

    Avrei creato una pagina di login per far loggare i giocatori, una pagina di gioco che si chiamerà main.php e una pagina per riaggiornare la pagina main qual'ora si cliccasse sul bottone nella main.php

    Il codice che ho scritto per il cambio del turno è questo:
    Codice PHP:
    $leggofp=fopen("conto.txt" , 'r+');
    $leggofp2 = fread($leggofp, 100);
    if(
    $leggofp2>=numg()){
    $xxx=0;
    $fp=fopen ("conto.txt" , "w+");
    fputs ($fp , "$xxx");
    fclose($fp);
    }

    $q=mysql_query("SELECT * FROM gioco WHERE id=$leggofp2+1");

    while(
    $e=mysql_fetch_array($q)){
    if(
    $e['giocatori']==$user){
    echo
    "<form action='' method='POST'>
    <input type='submit' name='passa' value='Passa'>
    </form>"
    ;

    if(isset(
    $_POST['passa'])){
    $leggofp2++;
    //cambio il turno
    $fp=fopen ("conto.txt" , "w+");
    fputs ($fp , "$leggofp2");
    fclose($fp);
    //aggiorno il database per sapere se devo riaggiornare o no la main.php
    mysql_query("UPDATE refresh SET refresh=1 ");
    header("Location:main.php");
    }
    }


    }
    Mentre questo è il codice che ho scritto in refresh.php:
    Codice PHP:
    <meta http-equiv="refresh" content="1;url=refresh.php" />
    <?php
    session_start
    ();
    include(
    "config.php");

    $aggiorno=mysql_query("SELECT * FROM refresh");
    while(
    $xnr=mysql_fetch_array($aggiorno)){
    if(
    $xnr['reflesh']==1){
    echo
    " <script>location.href = 'main.php';</script>";
    mysql_query("UPDATE refresh SET refresh=0");
    }
    else{}
    Il programmino che ho fatto funziona anche se è stato creato nel modo più banale possibile, ma vorrei avere una vostra idea a riguardo, io non sono un programmatore, io sono un grafico, come potrei migliorare il programma, voi come avreste fatto? Arigatou gozaimasu! Spererei in qualche risposta xD
    Ultima modifica di alemoppo : 24-07-2011 alle ore 12.24.25 Motivo: +tag [php]

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Premetto che nemmeno io sono programmatore; anzi, se qualcuno vuole migliorare il mio, ne sarei soltanto felice, in modo che possa imparare nuove cose!

    Come ho scritto nel commento, guardando il tuo script mi risultano già dichiarate la variabile $user (che, dovrebbe contenere il nick dell'utente) e la funzione "numg()", che dovrebbe ritornare il numero di giocatori.
    Purtroppo il mio script non l'ìho potuto testare, anche perché appunto mi mancavano queste due info; e soprattutto non ho la tabella nel database...
    Codice PHP:
    <?php
    session_start
    ();
    /*****
    //già dichiarate:
    $user;
    function numg();
    *****/
    if(!file_exists('conto.txt'))
    file_put_contents('conto.txt','0');
    if(!isset(
    $_SESSION['id_giocatore']))
    {
    include(
    "config.php");
    $q=mysql_query("SELECT * FROM gioco WHERE giocatori=$user");
    mysql_close($dc); ///non so quale variabile usi per la connessione; ho messo $dc
    $e=mysql_fetch_array($q);
    $_SESSION['id_giocatore'] = $e['id'];
    header('Location:'.$_SERVER['PHP_SELF']);
    }

    if(isset(
    $_POST['richiesta']))
    echo (
    $_SESSION['id_giocatore'] == file_get_contents('conto.txt'))?'1':'0';
    else if(isset(
    $_POST['cliccato']))
    {
    $conteggio = file_get_contents('conto.txt');
    file_put_contents('conto.txt', ($conteggio>=numg())?'0':$conteggio+1);
    }
    ?>
    <!doctype html>
    <html>
    <head>
    <title>
    Passaggio turno
    </title>
    <style type="text/css">
    .pulsante
    {
    width:100px;
    height:20px;
    visibility:hidden;
    }
    </style>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    <script type="text/javascript">
    var richiedi = true;
    function verifica()
    {
    if(richiedi)
    $.ajax({
    type: "POST",
    url: "<?= $_SERVER['PHP_SELF'] ?>",
    data: "richiesta=",
    success: function(msg) {
    if(msg == '1')
    {
    $('.pulsante').css('visibility', 'visible');
    richiedi = false;
    }
    },
    complete: function() {
    setTimeout('verifica()',200);
    }
    });
    }
    window.onload = "verifica()";
    function cliccato()
    {
    $.ajax({
    type: "POST",
    url: "<?= $_SERVER['PHP_SELF'] ?>",
    data: "cliccato=",
    success: function(msg) {
    $('.pulsante').css('visibility', 'hidden');
    richiedi = true;
    verifica();
    }
    });
    }
    </script>
    </head>
    <body>
    <button class="pulsante" onClick="cliccato()">Clicca</button>
    </body>
    </html>
    Ciao!
    Ultima modifica di alemoppo : 24-07-2011 alle ore 14.05.08

  3. #3
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Interessante, ho una sola domanda: perchè hai chiuso la connessione al database? mysql_close(); a cosa può servire fare ciò?
    Ultima modifica di memai : 24-07-2011 alle ore 15.27.59 Motivo: vevo scritto mysql-connect :P

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    La connessione andrebbe sempre chiusa.. leggi qui: mysql_close();... È un pò come la fclose()

    Ciao!

  5. #5
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Ok capito
    Ciao!

Regole di scrittura

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