Oups, petit temps de latence.
J'ai testé ton jeu et je le trouve très intéressant. Comme Chapo le dit, une page avec les règles ne ferait pas de mal, même si on peut les trouver sur Wikipédia ou d'autres sites, je ne connaissais pas ce jeu avant et j'ai dû chercher ailleurs, c'est toujours un peu gênant.
Par rapport au compteur, l'idéal est de ne pas faire confiance au client (JAMAIS). Pour toute la partie temps réel (compteur, éviter le refresh), plusieurs possibilités s'offrent à toi :
- Une fonction javascript qui request une page php en passant des informations supplémentaires en POST. Ton script PHP va se servir du $_POST pour récupérer ces infos, les traiter et écrire (à l'aide d'un echo) le résultat sous forme de chaîne de caractère. Le script javascript appelant peut savoir quand le rendu est terminé et peut parser le résultat. Un petit exemple de script qui gère ça :
Le problème ici c'est que tu fais confiance au client, donc à n'utiliser que pour les actions du client qui sont des choix (notamment le déplacement qu'il veut effectuer : l'id du pion bougé et les coordonnées de destination). Il ne faut surtout pas utiliser ce genre de script pour récupérer des informations critiques que seul le serveur devrait contrôler (concrètement, ton compteur).
Pour le push, tu peux en savoir un petit peu plus ici. Néanmoins, je te conseille vivement Ajax ou même les Websockets si tu es prêt à toucher à quelque chose d'un peu nouveau.
Pour ton compteur, tu as toujours la possibilité de mettre un timestamp en session, dans mes souvenirs, javascript n'y a accès qu'en lecture (mais je dis peut-être une grosse bêtise hein...), donc tu pourrais "faire confiance" au client en envoyant ce timestamp en POST dans la page de traitement dont je parlais plus haut. Tu peux même faire une double-vérification en live côté client avec une fonction javascript appelée toutes les x millisecondes pour éviter au joueur d'effectuer sa prochaine action avant de se rendre compte qu'il a dépassé le temps limite.
Enfin bref, quelques pistes à étudier, peut-être quelques bêtises dans mes conseils, je te laisse faire le tri et te renseigner plus en profondeur.
Bonne continuation !
J'ai testé ton jeu et je le trouve très intéressant. Comme Chapo le dit, une page avec les règles ne ferait pas de mal, même si on peut les trouver sur Wikipédia ou d'autres sites, je ne connaissais pas ce jeu avant et j'ai dû chercher ailleurs, c'est toujours un peu gênant.
Par rapport au compteur, l'idéal est de ne pas faire confiance au client (JAMAIS). Pour toute la partie temps réel (compteur, éviter le refresh), plusieurs possibilités s'offrent à toi :
- Une fonction javascript qui request une page php en passant des informations supplémentaires en POST. Ton script PHP va se servir du $_POST pour récupérer ces infos, les traiter et écrire (à l'aide d'un echo) le résultat sous forme de chaîne de caractère. Le script javascript appelant peut savoir quand le rendu est terminé et peut parser le résultat. Un petit exemple de script qui gère ça :
Code :
var http;
var url = "url_relative_de_ton_script.php";
var params = [param1, param2, ...];
if (navigator.appName == "Microsoft Internet Explorer")
http = new ActiveXObject("Microsoft.XMLHTTP");
else
http = new XMLHttpRequest();
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function () {
if (http.readyState == 4) {
var result = http.responseText;
}
}
http.send(params);
return false;
Le problème ici c'est que tu fais confiance au client, donc à n'utiliser que pour les actions du client qui sont des choix (notamment le déplacement qu'il veut effectuer : l'id du pion bougé et les coordonnées de destination). Il ne faut surtout pas utiliser ce genre de script pour récupérer des informations critiques que seul le serveur devrait contrôler (concrètement, ton compteur).
Pour le push, tu peux en savoir un petit peu plus ici. Néanmoins, je te conseille vivement Ajax ou même les Websockets si tu es prêt à toucher à quelque chose d'un peu nouveau.
Pour ton compteur, tu as toujours la possibilité de mettre un timestamp en session, dans mes souvenirs, javascript n'y a accès qu'en lecture (mais je dis peut-être une grosse bêtise hein...), donc tu pourrais "faire confiance" au client en envoyant ce timestamp en POST dans la page de traitement dont je parlais plus haut. Tu peux même faire une double-vérification en live côté client avec une fonction javascript appelée toutes les x millisecondes pour éviter au joueur d'effectuer sa prochaine action avant de se rendre compte qu'il a dépassé le temps limite.
Enfin bref, quelques pistes à étudier, peut-être quelques bêtises dans mes conseils, je te laisse faire le tri et te renseigner plus en profondeur.
Bonne continuation !