[PHP, Javascript] Gioco di carte online

Messaggioda simoorusso » 14/12/2018, 19:22

Devo sviluppare un gioco di carte online, ovviamente quindi ogni giocatore si trova collegato da un dispositivo diverso, tramite l'uso di PHP e/o Javascript. Ho pensato di fare un db che gestisca le carte e i giocatori, sono riuscito a "dare le carte" ma ora non riesco a trovare un modo per gestire i turni, cioè la soluzione che mi era venuta in mente è questa:
Codice:
$query="SELECT * FROM giocatore WHERE nome='$nome' AND idPartita='$codice'"; //Quando creo la partita
//assegno un id univoco alla partita poi qui prendo i giocatori che si sono uniti alla partita
$temp=mysql_query($query);
$giocatori = mysql_fetch_array($temp);

$turno=0;
while($turno==0){
   $turno=$giocatori['turno'];
}

ovvero quando un giocatore passa il turno nel mio db la voce turno (booleano) di tale giocatore diventa 0 e quella del giocatore successivo diventa 1 ma con il ciclo while ma non mi si carica la parte in html della pagina e dopo 30 secondi mi dice che è scaduto il tempo.
Non riesco proprio a immaginare un modo per risolvere il problema, si può fare qualcosa tramite le sessioni? O riuscire a intercettare un cambiamento nel db dopo aver caricato la parte html della pagina?
simoorusso
New Member
New Member
 
Messaggio: 37 di 87
Iscritto il: 25/11/2016, 14:27

Re: [PHP, Javascript] Gioco di carte online

Messaggioda probid » 15/12/2018, 10:33

Ci sono diverse tecniche per gestire questo genere di problemi, la più semplice delle quali è probabilmente AJAX.

Si tratta di fare delle richieste asincrone ("dietro le quinte", non influenzando quindi il caricamento della pagina): nel tuo caso puoi richiamare ad intervalli di tempo regolari, lato JavaScript, uno script PHP che controlli lo stato della partita, aggiornando la pagina in funzione delle risposte.

Per una soluzione rapida puoi usare librerie già pronte, ad esempio jQuery e le relative funzioni AJAX. Se preferisci evitare di importare un intero framework solo per questa funzionalità, o se vuoi approfondire, puoi dare un'occhiata a XMLHttpRequest oppure la più moderna Fetch.

Ciao!
probid
New Member
New Member
 
Messaggio: 25 di 82
Iscritto il: 01/10/2010, 19:30


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite