Apocalypse

Scheindorf Message lu Posté le 17 Juil 2009 à 01:28 Bulle
Avatar de Scheindorf
Explorateur

Messages : 77
GCPoints : 30404
Pour m'entrainer à utiliser le javascript et le php utilisé en commande a distance j'ai programmer le petit jeu suivant (en trois jours tout de même, je suis vraiment lent...) : C'est un clone de ce qu'on appelle le jeu de l'apocalypse, allez savoir pourquoi.

Il se joue sur un échiquier de 5x5, avec 5 pions et 2 cavaliers par joueurs. Le but est de faire perdre à l'adversaire ses cavaliers. Les pions prennent en diagonale, comme aux echecs et se déplacent dans les 4 cases adjacentes. Les cavaliers vont et prennent comme aux echecs.

En revanche, là est l'originalité du jeu, les deux joueurs jouent simultanément. Après que chaqu'un aient validés leur prochain déplacement, la situation est verifiée : si deux cavaliers arrivent sur la meme case, ils s'entretuent. si deux pions arrivent sur la meme case, idem. si un cavalier arrive en meme temps qu'un pion sur une case, il le detruit. si une piece arrive sur la case d'une autre qui se déplace le meme tour, elle n'est pas prise mais le déplacement reste valide si deux pieces tentent mutuellement de se prendre, il y a juste echange des deux

les autres règles de prise sont comme aux échecs.

vous pouvez y jouer ici http://wolf.fserv.org/apocalypse1/

la version béta que voila n'a pas de conditions de victoire implémentés, vous devrez donc simplement arrêter la partie. vous ne pouvez pas non plus savoir contre qui vous jouez, il vous suffit de cliquer sur le bouton de recherche d'un adversaire et espérer que quelqu'un d'autre arrive.

en cas d'erreur, merci de me le rapporter et donner le contexte, merci =)
Studios Corridor

--Participez a la constitution de la base de donnée Triathlon!--
http://triathlon.lecorridor.net/question.php
Melysoph Message lu Posté le 17 Juil 2009 à 04:20 Bulle
Avatar de Melysoph
Explorateur

Messages : 67
GCPoints : 21899
J'y ai trouvé un possible bug (ou pas) de rien du tout : On peut jouer contre soit-même.
Ce qui fait que si on cherche une partie, qu'on recharge la page, et qu'on recherche encore une partie, on se retrouve soit même comme opposant et la partie commence.
Sauf qu'on ne peut pas jouer des deux côtés évidemment... A moins de faire ça dans deux onglets différents. C'est néanmoins pratique pour tester. ^^
* Phrase très profonde et recherchée *
Scheindorf Message lu Posté le 17 Juil 2009 à 16:14 Bulle
Avatar de Scheindorf
Explorateur

Messages : 77
GCPoints : 30404
En effet je devrais empêcher ça, c'était pour tester contre moi même effectivement mais c'est en effet potentiellement gênant.
Si je l'améliore je vais donc corriger ce problème,
chercher a faire en sorte que se jouent un sons lorsqu'un nouveau tour commence,
faire des parties nommés pour que deux amis puissent jouer et,
ajouter un tchat pour vérifier qu'on joue bien contre quelqu'un et lui parler.
Studios Corridor

--Participez a la constitution de la base de donnée Triathlon!--
http://triathlon.lecorridor.net/question.php
Devil'sCry Message lu Posté le 17 Juil 2009 à 16:23 Bulle
Avatar de Devil'sCry
Explorateur

Messages : 136
GCPoints : 47714
Je n'arrive pas à faire déplacer les pions, c'est normal?
We are falling, The light is calling, Black night, Dark sky, The Devil's Cry.
Scheindorf Message lu Posté le 17 Juil 2009 à 23:53 Bulle
Avatar de Scheindorf
Explorateur

Messages : 77
GCPoints : 30404
j'ai ajouter un chat.

Si vous rencontrez des problèmes , merci de préciser le contexte et le navigateur ainsi que si jamais vous en avez un le message d'erreur.

Sur mon pc sous linux avec FF3 tout marche parfaitement... mais sur mon autre pc avec IE et FF2 , ça déconne complètement et je trouve pas oû...

Sous IE : marche pas, reste bloquer à la recherche de partie, et je suis même pas certain qu'il fasse la requette corectement.

sous FF : marche, mais, si une partie n'est pas déjà crée et qu'il doit attendre un joueur, après les 5 secondes quand il reverifie, il lance la partie alors qu'il n'y a personne d'autre... très étrange...

Corrigé
Dernière édition le 18 Juil 2009 à 04:37
Studios Corridor

--Participez a la constitution de la base de donnée Triathlon!--
http://triathlon.lecorridor.net/question.php
Devil'sCry Message lu Posté le 18 Juil 2009 à 10:31 Bulle
Avatar de Devil'sCry
Explorateur

Messages : 136
GCPoints : 47714
Oui, je tourne sous IE 8. Rien de mieux que IE.
We are falling, The light is calling, Black night, Dark sky, The Devil's Cry.
corwin Message lu Posté le 18 Juil 2009 à 10:56 Bulle
Avatar de corwin
Membre Confirmé

Messages : 459
GCPoints : 63647
Si on fait un débat sur quel est le navigateur internet le mieux je pense pas que sa soit IE...
Devil'sCry Message lu Posté le 18 Juil 2009 à 11:21 Bulle
Avatar de Devil'sCry
Explorateur

Messages : 136
GCPoints : 47714

Citation :

Si on fait un débat sur quel est le navigateur internet le mieux je pense pas que sa soit IE...


Si tu veux, c'est ton avis si tu préfère avoir à faire des mises à jours trop souvant, des chargement longais parce que t'as des modules qui te bouffe un max de mémoire.

Pour revenir au sujet, c'est quand je me suis connecté, hop, j'ai été envoyé sur une partie, il était dit que je jouais avec les pions noirs, mais je pouvais rien faire.
Il y avait aussi le boutton "Valider" qui n'était pas... validé (js: disabled=true).
Quand je passais le curseur et que je cliquais sur la zone de jeu, il ne se passait rien.
We are falling, The light is calling, Black night, Dark sky, The Devil's Cry.
Darktib Message lu Posté le 18 Juil 2009 à 11:47 Bulle
Avatar de Darktib
Membre Ultime

Messages : 4017
GCPoints : 347288
Je l'ai testé ous chrome. Je déplace le premier pion, je clique sur valider... et il attend une réponse sans que rien ne vienne...

Dommage, parce que le jeu m'a l'air sympa et bien réalisé
Scheindorf Message lu Posté le 18 Juil 2009 à 15:13 Bulle
Avatar de Scheindorf
Explorateur

Messages : 77
GCPoints : 30404
ouvre deux fenêtres/onglet et lance une partie presque simultanément dans chaqu'un, comme ça tu vas pouvoir tester contre toi même.

Si il attend une réponse c'est tout simplement que l'adversaire n'a pas encore validé son coup.


Je crois, sans etre sur, que ce qui ne marche pas sous IE c'est la plétore de setTimeout, qui pourtant sont censés être compatibles...


Je ne me sens pas capable de réaliser une IA pour jouer seul malheureusement, j'ai beaucoup à apprendre dans ce domaine.


Si ça intéresse quelqu'un, voici l'API coté php (envoie des commandes par GET)
Action=...

requestanotherplayer (retourne un identifiant de partie en 13 caracteres: ABBBBBBBBBBCC ; A est la couleur (0 pour blanc, 1 pour noir) les blancs correspondent toujours au joueur initialisant la partie, le noir au joueur arrivant en second, B est un identifiant unique représentant la partie, C est la clef du joueur)

takeit&GameID=<clef jeu>&PlayerID=<clef joueur>&color=<code couleur> (retour OK si la clef jeu existe et la clef joueur correspond a la couleur donné, le blanc devant s'enregistrer avant le noir, quand les deux joueurs ont validés, la partie est consideré comme commencé par le serveur)

snapshot&GameID=<clef jeu> (retourne une "image" du terrain de 25 caractères, un X correspond a une case vide, un A pour un pion blanc, B pour pion noir, D pour cavalier noir, P pour cavalier blanc)

play&GameID=<clef jeu>&PlayerID=<clef joueur>&Start=<position depart>&End=<position d'arrivée> (Si la clef jeu et joueur sont bons, joue le coup et retourne : REC si l'autre joueur n'a pas jouer. NXT si il a déja jouer et qu'un nouveau tour peux se faire directement. Retourne ILLEGAL si le coup n'est pas possible)

currentturn&GameID=<clef jeu> (retourne le tour en cour)

lastmoves&GameID=<clef jeu> (retourne les derniers mouvements sous la forme : AABB/CCDD, ou AA est la position de depart blanc, BB la position d'arrivée, CC le depart noir, DD son arrivée)

chat&GameID=<clef jeu>&PlayerID=<clef joueur>&Text=<texte> (ajoute Text au fichier de chat de la partie, la clef joueur n'est pas verifiée, si elle ne correspond pas a un joueur, il est indiqué "visitor" dans le fichier)

chatrequest&GameID=<clef jeu>&lastline=<numero de la derniere ligne> (retourne le texte posté dans le fichier chat entre lastline et la derniere ligne du fichier)
Dernière édition le 18 Juil 2009 à 18:29
Studios Corridor

--Participez a la constitution de la base de donnée Triathlon!--
http://triathlon.lecorridor.net/question.php
Mod Message lu Posté le 18 Juil 2009 à 19:02 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Je n'ai pas vraiment pu tester, faute d'adversaire, il me semble ?

Après un coup de ma part, le jeu reste bloqué sur "Waiting for opponent move......", et n'affiche plus la grille de jeu.

Ce que tu appelles "javascript et le php utilisé en commande a distance", c'est en fait tout simpelemnt de l'AJAX, non ? Ou c'est quelque chose d'autre ? Le terme ne me disant rien, je ne peux pas vraiment être sûr.
Scheindorf Message lu Posté le 19 Juil 2009 à 05:33 Bulle
Avatar de Scheindorf
Explorateur

Messages : 77
GCPoints : 30404
C'est de l'AJAX oui, mais comme je retourne pas d'XML, le terme est pas vraiment adapté...


Citation :

"Après un coup de ma part, le jeu reste bloqué sur "Waiting for opponent move......", et n'affiche plus la grille de jeu."



Tout a fait normal, c'est sur qu'un jeu deux joueurs, c'est chiant quand on a pas d'IA ou d'adversaire pour arriver a le tester...
Studios Corridor

--Participez a la constitution de la base de donnée Triathlon!--
http://triathlon.lecorridor.net/question.php
Répondre
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.0346 secondes