JeuWeb - Crée ton jeu par navigateur
resolution liste d'actions : reinjecter de nouvelles actions? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : resolution liste d'actions : reinjecter de nouvelles actions? (/showthread.php?tid=5282)

Pages : 1 2 3 4 5 6


resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 24-02-2011




RE: resolution liste d'actions : reinjecter de nouvelles actions? - niahoo - 24-02-2011

Sous quelle condition se déroule ton algorithme, chargement de page par un utilisateur ?


RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 24-02-2011

(24-02-2011, 08:27 PM)niahoo a écrit : Sous quelle condition se déroule ton algorithme, chargement de page par un utilisateur ?

oui et le joueur qui surf sur une nouvelle page entraine la résolution des actions qui ne sont pas forcement les siennes mais tout simplement des actions révolues.


RE: resolution liste d'actions : reinjecter de nouvelles actions? - niahoo - 24-02-2011

Donc, avec ton système, en stockant de nouvelles actions dans un array, il est possible que tu dupliques les actions si deux joueurs ayant rapport l'un avec l'autre appellent une page au même moment !

Peut-être restocker en base de données au lieu de mettre dans un array ? Mais là encore, je suppose que tu ne supprimes l'action dans la base (ou la marque en résolue) que quand elle à été résolue, donc même sans une histoire d'array il est possible que deux joueurs bossent sur la même action.

Donc je vois pas trop ...


RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 24-02-2011

(24-02-2011, 10:18 PM)niahoo a écrit : Donc, avec ton système, en stockant de nouvelles actions dans un array, il est possible que tu dupliques les actions si deux joueurs ayant rapport l'un avec l'autre appellent une page au même moment !

non impossible car la résolution des actions est dans une transaction avec' flag= resolu', voir cette discussion : http://www.jeuweb.org/showthread.php?tid=6246
tu penses bien que j'y ai déjà pensé Wink


RE: resolution liste d'actions : reinjecter de nouvelles actions? - zneman - 24-02-2011

Peut être n'ais je pas tout compris mais:
tu te moques de résoudre les actions du joueur y qui ne concernent pas un joueur x qui est en train de jouer ! non ?
Tant que le joueur n'est pas connecté ou qu'un autre n'a aucune interaction avec lui, tu n'as pas besoin de résoudre l'action !

Enfin ma réponse me parait simple donc je n'ai pas du tout comprendre ! :p


RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 24-02-2011

(24-02-2011, 11:02 PM)zneman a écrit : Tant que le joueur n'est pas connecté ou qu'un autre n'a aucune interaction avec lui, tu n'as pas besoin de résoudre l'action !

cela n'a rien à voir avec le problème du 1er post...et pourquoi un autre joueur ne serait pas la cause de la résolution d'actions révolues qui ne le concernent pas, un jour ou l'autre il faudra bien les résoudre...autant le faire dès que possible...

bref, cela ne me fait pas avancer le schmilblick, je vais voir du côté de la récursivité peut être est ce là la clef...


RE: resolution liste d'actions : reinjecter de nouvelles actions? - niahoo - 25-02-2011

La récursivité c'est évident, mais fais gaffe php n'est pas optimisé pour ça il me semble (enfin y a de quoi faire).

Mais puisque tu utilises une transaction, est-il possible, au lieu d'utiliser un array, de mettre les nouvelles actions dans la pile en base de données plutot ?

Car comme ça si un autre joueur appelle une page, il les résoudra, et sinon, quand ton script est fini, il recommence s'il reste des trucs en base de données.

Enfin bon tout ça c'est long, utilises ajax pour pas avoir des chargements de page de 50 minutes ...


RE: resolution liste d'actions : reinjecter de nouvelles actions? - Shidame - 25-02-2011

N'y a t'il pas moyen de considérer "attaque" et "retour d'attaque" comme une seule action ? Est ce qu'une attaque engendre toujours un retour d'attaque ?


RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 25-02-2011

(25-02-2011, 09:48 AM)niahoo a écrit : Mais puisque tu utilises une transaction, est-il possible, au lieu d'utiliser un array, de mettre les nouvelles actions dans la pile en base de données plutot ?

Car comme ça si un autre joueur appelle une page, il les résoudra, et sinon, quand ton script est fini, il recommence s'il reste des trucs en base de données.

oui, mais ce qui me gêne dans la récursivité c'est la fonction récursive va à chaque fois qu'elle est lancée faire un SELECT, alors que si on réinjecte les actions générées par d'autres action dans un array() ca sera plus rapide car plus de SELECT inutile...enfin je crois...

imaginons que sur 100 actions à résoudre cela engendre 30 nouvelles actions (retour d'attaque par ex), le nombre de SELECT est assez conséquent...

(25-02-2011, 12:44 PM)Shidame a écrit : N'y a t'il pas moyen de considérer "attaque" et "retour d'attaque" comme une seule action ? Est ce qu'une attaque engendre toujours un retour d'attaque ?

pas bête...mais pas évident à gérer