JeuWeb - Crée ton jeu par navigateur
Petit jeu de plateau avec IA. - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Les réalisations de la communauté (https://jeuweb.org/forumdisplay.php?fid=39)
+--- Forum : Jeux jouables (https://jeuweb.org/forumdisplay.php?fid=52)
+--- Sujet : Petit jeu de plateau avec IA. (/showthread.php?tid=6145)

Pages : 1 2


RE: Petit jeu de plateau avec IA. - Chapo - 07-02-2013

Pas mal comme petit projet !

J'ai quelques remarques / conseils au niveau purement "technique" :

- Tu as prévu une version sans refresh page à chaque tour ? Il suffirait d'un peu d'AJAX et ça ajouterait pas mal de fluidité au jeu.

- Parfois quand je veux me déplacer d'une seule case, j'ai un lag de 2/3 secondes puis une redirection vers une page inconnue, ce qui m'affiche l'écran de ton hébergeur

Et sur le plan "ergonomie et général" :

- Pourquoi ne pas afficher un lien vers un tuto qui expliquerait rapidement le but du jeu, pour les incultes comme moi on est obligé de passer par Wikipedia ^o^

A part ça c'est couwl !


RE: Petit jeu de plateau avec IA. - Guiami - 07-02-2013

Voila ce que je pense du jeu :
Le mode du jeu contre IA est je pense inutile (mon avis) car ont peu le faire jouer a notre avantage. Il serait intérréssent si on ne pourrait pas le faire jouer et si la console nous interdirait de faire 2 tours au lieu de beuger.
Un mode joueur contre joueur avec des tournois serait extrêmement intéressent ! Si tu rajoute le mode membre (je l'attend avec impatience) rajoute un chat ça fait toujours bien !
Met aussi une page règles car des fois je m'y perd un peu
Sur ce bon avancement !


RE: Petit jeu de plateau avec IA. - Lord-Gargoyle - 07-02-2013

Pour l'instant une version avec AJAX n'est pas prévu, pour la bonne raison que c'est une techno que je ne maîtrise pas.
J'avais commencé un tuto, mais je ne l'ai jamais fini ...
Il faudra effectivement que je pense à m'y mettre ...

Si cela t'intéresse (ou quelqu'un d'autre) je peux te proposer de te donner mes sources, et puis tu peux me les renvoyer avec les améliorations.
Ca te permettra de voir mes techniques, et moi les améliorations qu'on peut faire à mes programmes.
Je fais ça pour m'entraîner, donc je donne mes sources bien volontiers contre une critique éclairée ou des améliorations ...

Tu as raison, j'ai le problème de redirection avec Google Chrome, mais pas avec Firefox ...
Je vais changer d'hébergeur.
D'ailleurs j'aimerais bien me trouver un hébergeur sans pub ... Je vais essayer de contacter des associations de jeu pour voir, parce que je prévois d'autres jeux après celui là et j'aimerais éviter ce problème ...

Oui, tu as tout à fait raison, mais comme je l'ai dit, il manque à mon site une page d'accueil, les règles, page d'inscription, de connexion, de classement et un espace membre. Et une page pour créer des parties ... Pour l'instant je teste juste le concept ...

En même temps les règles sont super simples : choix entre clonage ou saut. Quand on saute, on perd le blob de départ. Et conversion des autres blobs adjacents à la case d'arrivée. Le gagnant étant celui qui a le plus de blobs ...

C'est un jeu sympa, avec un potentiel au moins aussi important que Reversi, je ne sais pas pourquoi il est beaucoup moins connu ... Surement parce qu'il n'a jamais été édité en jeu de plateau ...


RE: Petit jeu de plateau avec IA. - Chapo - 07-02-2013

Lord-Gargoyle a écrit :Si cela t'intéresse (ou quelqu'un d'autre) je peux te proposer de te donner mes sources, et puis tu peux me les renvoyer avec les améliorations.

Malheureusement je suis déjà très (très très très) occupé sur mon projet, et j'ai du mal à dormir moins de 2h par nuit Smile

Lord-Gargoyle a écrit :... il manque à mon site une page d'accueil, les règles, page d'inscription, de connexion, de classement et un espace membre...

Chaque chose en son temps mais oui toutes ces features ajouteraient pas mal de profondeur à ton projet.

Lord-Gargoyle a écrit :En même temps les règles sont super simples

Je dis pas le contraire, mais encore faut-il les connaître :langue2:

Bon courage pour la suite en tout cas !


RE: Petit jeu de plateau avec IA. - Lord-Gargoyle - 15-02-2013

Hello,

Je reposte juste pour une question technique.
J'aurais voulu rajouter un petit compteur de temps pour ne pas que les parties s'éternisent ...
Par contre, je ne maîtrise pas les technologies pour rafraîchir la page automatiquement après un coup de l'adversaire ... (j'ai entendu parler de techniques de push, si quelqu'un pouvait m'en dire plus ... ?)
Et j'ai peur de ne pas pouvoir faire ça sur un hébergeur de base ?
Merci d'avance ...


RE: Petit jeu de plateau avec IA. - Drakhaine - 19-02-2013

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 :

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 !