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) |
RE: resolution liste d'actions : reinjecter de nouvelles actions? - Argorate - 25-02-2011 (25-02-2011, 02:43 PM)php_addict a écrit :(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 ? C'est exactement ce que je fais dans le cas de l'attaque d'un QG. Je vois pas le problème? Tu as une fonction attaque, au lieu de faire attaque(moi sur ennemi) tu fais attaque(moi sur ennemi) et attaque(ennemi sur moi) ^^ Non? RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 25-02-2011 (25-02-2011, 02:49 PM)Argorate a écrit : Tu as une fonction attaque, au lieu de faire attaque(moi sur ennemi) tu fais attaque(moi sur ennemi) et attaque(ennemi sur moi) ^^ euh pas certain de comprendre. ta fonction attaque génère donc bien 2 actions finalement dans mon cas une attaque réussie génère un retour de troupes et une attaque ratée ne génère rien du tout... RE: resolution liste d'actions : reinjecter de nouvelles actions? - Argorate - 25-02-2011 Il faut décomposer la chose, c'est a dire que tu ne dois pas appelais attaque() mais une fonction plus globale:
si tu veux tjs une contre attaque, si ce n'est pas le cas, tu as juste a ajouter les if qui conditionne la chose, non? Après si ça retourne quelques chose tu le recupères, y a pas de soucis:
je met des noms comme ça, pour que ce soit explicite, tu peux mettre se que tu veux^^ Fin tu vois se que je veux dire? RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 25-02-2011 apres quelques tests: il semble qu'un SELECT dans une fonction récursive ne pose pas trop de problèmes en terme de temps d'exécution du script... pour 100 actions résolues en même temps: 0,58 secondes en local. par contre je n'ai pas pu tester plus de résolutions car: Fatal error: Maximum function nesting level of '100' reached, aborting! il semblerais que cela soit un message de Xdebug de zend framework je crois... j'ai bien tenté d'augmenter cette valeur, mais sans succès (WAMP) et sans succès également en désactivant Xdebug... RE: resolution liste d'actions : reinjecter de nouvelles actions? - niahoo - 26-02-2011 Je sais pas si c'est vraiment une bonne idée, php n'est pas fait pour de la récursion à l'infini. Essaie plutot une boucle classique. RE: resolution liste d'actions : reinjecter de nouvelles actions? - Argorate - 27-02-2011 Il ne faut jamais faire de requêtes dans une boucles (enfin le moins possible). (HS: attention au temps d'exécution des requêtes, d'une part t'es en local et en plus t'as table n'a pas forcement le bon nombre d'enregistrement par rapport a quand ton jeu sera en service, tu peux avoir des surprises^^) D'autant plus des select... qu'es ce que tu veux sélectionner? n'y a t-il pas moyen de faire une seul grosse requêtes plutôt? RE: resolution liste d'actions : reinjecter de nouvelles actions? - niahoo - 27-02-2011 as tu lu le topic ? on réinjecte des données dans la base au fur et à mesure de l'exécution, on ne peut donc pas faire de "grosse requête" au départ alors que des données viendront s'ajouter ensuite en base de données. RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 27-02-2011 je tente de faire le moins d'appel à ma base de données mais pour cela il me faut une fonction de trie de tableau multidimensionnel et là ca coince, j'explique: je me sert de cette fonction: http://www.php.net/manual/fr/function.sort.php#99700 mais ca coince car le tri sur l'array est bien effectué mais il faudrait un tri sur 2 colonnes et je suis incapable de coder une telle fonction exemple de tri par la colonne "time" AVANT:
APRES:
l'array est bel et bien trié mais uniquement par "time" et non par "time" et par "id". Auriez vous sur le coude une telle fonction (pour trier un array multidimentionel en fonction de 2 colonne?) Ce qu'il faudrait c'est l'equivalent de ORDER BY time,id ASC RE: resolution liste d'actions : reinjecter de nouvelles actions? - srm - 28-02-2011 http://www.php.net/manual/fr/function.usort.php (25-02-2011, 11:46 PM)php_addict a écrit : Fatal error: Maximum function nesting level of '100' reached, aborting! Tu as un problème de récursion, car là c'est comme si tu avais 100 profondeurs d'itérations, du genre :
Donc normal qu'il pète un plomb :] RE: resolution liste d'actions : reinjecter de nouvelles actions? - php_addict - 28-02-2011 (28-02-2011, 08:11 AM)oxman a écrit : http://www.php.net/manual/fr/function.usort.php merci du lien, je pense avoir trouvé une function qui me convient: http://www.php.net/manual/fr/function.usort.php#89977 (28-02-2011, 08:11 AM)oxman a écrit :(25-02-2011, 11:46 PM)php_addict a écrit : Fatal error: Maximum function nesting level of '100' reached, aborting! ok...donc finalement je ne sais plus tres bien comment m'y prendre avec ma resolution d'action...peut etre en n'en prenant 50 dans la BDD, les resoudres, tester si il y en a encore, les resoudres, etc... |