09-06-2015, 05:00 PM
Yop
pour ma part, je tenterai de voir (parce que j'adore ce genre de défi :p) s'il n'existe pas une formule directe plutôt qu'itérative. C'est à dire est-ce qu'il existe une fonction mathématique qui donne directement le résultat du combat (c'est parfaitement envisageable, même s'il devient délicat de manipuler des fonctions dont les entrées/sorties sont des vecteurs de dimension 100!).
Après, en cas d'échec, je ferai un système de groupe: je ne fais pas une bataille de NvsP unités, mais une bataille de (N groupes homogènes d'unités)vs(P groupes homogènes). L'avantage est alors de pouvoir faire des batailles de 10k vs 10k tout comme on fait des batailles de 10vs10: on ne simule pas chaque unité, mais on groupe toutes les unités identiques dans un seul sac, et on fait des combats de sac.
Enfin, je testerai. Car PHP (et mieux, MySQL, ou Java) tiennent très bien les boucles internes (des boucles sans appel de fonction pour PHP).
De plus, OVH a un bon score par rapport à ma propre machine, et de façon surprenante, certaines pages sont plus rapides en ligne qu'en local !
Structurellement, la question est assez vague, mais je dirai que j'aurai un code (class ou classes) dédié aux combats, auquel je passe ma liste d'unités (soit déjà en sacs soit en vrac). Ce code fait la simulation de combat, en distingant bien le code simulateur du code calculateur. C'est à dire une classe qui se charge de faire la simulation, mais qui ne sert à rien car elle n'a pas les formules de calcul, et une classe qui a les formules de calcul (mais qui ne sert à rien sans le simulateur qui les applique).
Sans oublier des logs intermédiaires (dans le Simulateur) pour savoir comment la simulation se déroule (sinon, les résultats seront surprenant, sans qu'on sache pourquoi!).
pour ma part, je tenterai de voir (parce que j'adore ce genre de défi :p) s'il n'existe pas une formule directe plutôt qu'itérative. C'est à dire est-ce qu'il existe une fonction mathématique qui donne directement le résultat du combat (c'est parfaitement envisageable, même s'il devient délicat de manipuler des fonctions dont les entrées/sorties sont des vecteurs de dimension 100!).
Après, en cas d'échec, je ferai un système de groupe: je ne fais pas une bataille de NvsP unités, mais une bataille de (N groupes homogènes d'unités)vs(P groupes homogènes). L'avantage est alors de pouvoir faire des batailles de 10k vs 10k tout comme on fait des batailles de 10vs10: on ne simule pas chaque unité, mais on groupe toutes les unités identiques dans un seul sac, et on fait des combats de sac.
Enfin, je testerai. Car PHP (et mieux, MySQL, ou Java) tiennent très bien les boucles internes (des boucles sans appel de fonction pour PHP).
De plus, OVH a un bon score par rapport à ma propre machine, et de façon surprenante, certaines pages sont plus rapides en ligne qu'en local !
Structurellement, la question est assez vague, mais je dirai que j'aurai un code (class ou classes) dédié aux combats, auquel je passe ma liste d'unités (soit déjà en sacs soit en vrac). Ce code fait la simulation de combat, en distingant bien le code simulateur du code calculateur. C'est à dire une classe qui se charge de faire la simulation, mais qui ne sert à rien car elle n'a pas les formules de calcul, et une classe qui a les formules de calcul (mais qui ne sert à rien sans le simulateur qui les applique).
Sans oublier des logs intermédiaires (dans le Simulateur) pour savoir comment la simulation se déroule (sinon, les résultats seront surprenant, sans qu'on sache pourquoi!).