FAQ   •  S'enregistrer   •  Connexion

Générateur d'armée
Voir le sujet suivant
Voir le sujet précédent
Auteur Message
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Mer Mai 04, 2016 3:47 pm Répondre en citant

Application Army_Gen (Générateur Aléatoire D'Armée)
l'exe:
https://www.sendspace.com/file/9nfm98 (dernière version du 28/06/2019)
les sources c#:
https://www.sendspace.com/file/lvahvq (dernière version du 12/02/2018)


Dernière édition par Fabien23230 le Ven Juin 28, 2019 10:21 am; édité 7 fois
Voir le profil de l'utilisateurEnvoyer un message privé
Djeece1
Grand Participant


Inscrit le: 26 Aoû 2014
Messages: 1979
Localisation: Toulouse

MessagePosté le: Mer Mai 04, 2016 4:21 pm Répondre en citant

Il faut obligatoirement avoir un compte pour y accéder ?
Voir le profil de l'utilisateurEnvoyer un message privé
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Mer Mai 04, 2016 4:34 pm Répondre en citant

Non, t'as juste à cliquer sur "Download"
Voir le profil de l'utilisateurEnvoyer un message privé
sylvaindesert
Participant


Inscrit le: 28 Fév 2014
Messages: 294
Localisation: Paris

MessagePosté le: Mar Mai 17, 2016 9:32 pm Répondre en citant

Ouaip, pas mal.
Il y a du travail.

Je n'ai pas beaucoup eu le temps de tester mais le 1er gros bug que je vois est que si je demande une armée à X points, j'en obtiens une à Y où Y>X.
Voir le profil de l'utilisateurEnvoyer un message privé
sylvaindesert
Participant


Inscrit le: 28 Fév 2014
Messages: 294
Localisation: Paris

MessagePosté le: Mer Mai 18, 2016 7:18 am Répondre en citant

Les contraintes sur la présence ou non d'Héros et d'escouades fonctionnent.
Mais pas celle des factions.

En tentant d'activer l'optimisation des synergies, le prog est passé en mode boucle infinie
==> proposer un nombre d'itérations (ou un temps) avant de rendre la main en cas d'insuccès.
Voir le profil de l'utilisateurEnvoyer un message privé
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Mer Mai 18, 2016 1:47 pm Répondre en citant

Citation:
Je n'ai pas beaucoup eu le temps de tester mais le 1er gros bug que je vois est que si je demande une armée à X points, j'en obtiens une à Y où Y>X.

Oui je sais pour l'instant je coupe dès que Y > X à l'ajout d'une nouvelle carte.
Mais rien ne t’empêche de supprimer la dernière carte ajoutée s'il y a un trop gros déséquilibre.
Mais après, je peux rajouter une condition de rajout pour que Y <= X

Citation:
Mais pas celle des factions

Ah... pourtant le tirage par faction est le plus simple... tu as fais quoi exactement?

Citation:
En tentant d'activer l'optimisation des synergies, le prog est passé en mode boucle infinie

C'est certainement un cas ou une configuration que je n'ai pas géré. Tu te rappelles de ce que tu as fais?

Merci pour ton retour Sylvain Wink
Voir le profil de l'utilisateurEnvoyer un message privé
sylvaindesert
Participant


Inscrit le: 28 Fév 2014
Messages: 294
Localisation: Paris

MessagePosté le: Mer Mai 18, 2016 2:25 pm Répondre en citant

Fabien23230 a écrit:
Citation:
Je n'ai pas beaucoup eu le temps de tester mais le 1er gros bug que je vois est que si je demande une armée à X points, j'en obtiens une à Y où Y>X.

Oui je sais pour l'instant je coupe dès que Y > X à l'ajout d'une nouvelle carte.
Mais rien ne t’empêche de supprimer la dernière carte ajoutée s'il y a un trop gros déséquilibre.
Mais après, je peux rajouter une condition de rajout pour que Y <= X

Citation:
Mais pas celle des factions

Ah... pourtant le tirage par faction est le plus simple... tu as fais quoi exactement?

Citation:
En tentant d'activer l'optimisation des synergies, le prog est passé en mode boucle infinie

C'est certainement un cas ou une configuration que je n'ai pas géré. Tu te rappelles de ce que tu as fais?

Merci pour ton retour Sylvain Wink


Pas si simple que cela le Y<=X: car si tu supprimes la dernière carte tu te pénalises éventuellement lourdement et dans tous les cas cela ne donne pas une armée optimisée au moins en termes de cout. Je suppose qu'à chaque tirage de carte, tu dois regarder combien de points sont encore disponibles et tu tires parmi les cartes qui permettront de ne pas dépasser la limite. Cela peut alors conditionner le tirage N-1 dans certain cas pour le joueur ne possédant pas de cartes à faible cout de type Isamu.
Je ne suis pas certain d'être clair Malade
Un ex. Armée demandée à 500 pts.
Tu es à 400 pts DONC tu ne vas tirer que dans le panel des cartes à cout <= 100 points. Ta carte la moins chère vaut 35 pts et tu as plein d'autres cartes à des valeurs supérieures.
Il serait dommage de tirer à ce moment une armée à 70 pts qui te priverait d'optimiser ton cout d'armée.
Pour éviter cela tu peux demander à combien tu acceptes d'être en-deçà de la limite supérieure et si tu arrives dans une impasse, alors soit tu annules le dernier tirage, soit tu reprends le tirage à zéro.

Pour les factions, je n'avais tout simplement pas cliqué sur le bouton "Générer" idoine: ma faute. Je confirme que cela marche.

Idem pour les synergies, bien que je sois étonné de voir le Chevaucheur de Swog en 1ère carte tirée puis aucun guerrier Orc par la suite dans l'armée... J'avais sélectionné les 2 types de synergies ("pour tous" et "combo").

Pour le blocage, il se reproduit assez aisément: par exemple avec toutes les figurines présentes 1 fois, synergies combo avec 1 carte ==> ca bloque

Au passage, tu confirmes que synergie "pour tous" correspond à une aura (de Raelin par ex) ou un pouvoir de guérison qui peut s'appliquer à toutes les armées? Que signifie alors 'uniquement' et 'exactement x carte(s)"?
Même question avec "Synergie Combo".

Je cherche la petite bête mais si je mets que je possède toutes les unités en double, le générateur peut construire des armées avec plusieurs fois un hero unique ou une escouade unique. Dans ce cas, peut-être devrais-tu brider le compte de ces unités/escouades à 0 ou 1 dans la déclaration des unités disponibles.
Par contre, je note qu'il ne mets pas plus que 3 fois la même unité/escouade.

POINT D'AMELIORATION
Il devrait être possible de rajouter des opérateurs booléens (ET / OU) entre chacun des 3 types de contraintes plutôt que d'avoir des armées exclusives.
==> permettrait de créer une armée Einar AVEC synergie ou une armée EINAR de corps à corps et le top: une armée Utgar en corps à corps avec Synergie.
Mais bon ce n'est pas moi qui programme - disons que c'est une option qui ajoutera de l'intérêt à ton prog.

VERSION EXCLUSIVE POUR MOI
Tu pourras me mettre le bouton permettant de générer "l'armée qui gagne à tous les coups?"
Merci d'avance
Svp
Voir le profil de l'utilisateurEnvoyer un message privé
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Mer Mai 18, 2016 3:21 pm Répondre en citant

Citation:
Pas si simple que cela le Y<=X: car si tu supprimes la dernière carte tu te pénalises éventuellement lourdement et dans tous les cas cela ne donne pas une armée optimisée au moins en termes de cout. Je suppose qu'à chaque tirage de carte, tu dois regarder combien de points sont encore disponibles et tu tires parmi les cartes qui permettront de ne pas dépasser la limite. Cela peut alors conditionner le tirage N-1 dans certain cas pour le joueur ne possédant pas de cartes à faible cout de type Isamu.
Je ne suis pas certain d'être clair Malade
Un ex. Armée demandée à 500 pts.
Tu es à 400 pts DONC tu ne vas tirer que dans le panel des cartes à cout <= 100 points. Ta carte la moins chère vaut 35 pts et tu as plein d'autres cartes à des valeurs supérieures.
Il serait dommage de tirer à ce moment une armée à 70 pts qui te priverait d'optimiser ton cout d'armée.
Pour éviter cela tu peux demander à combien tu acceptes d'être en-deçà de la limite supérieure et si tu arrives dans une impasse, alors soit tu annules le dernier tirage, soit tu reprends le tirage à zéro.

Oui, je suis d'accord avec toi pour le début. Pas évident d'ajouter de la "logique" dans un tirage "aléatoire" ^^
Par contre j'ai pas compris ta proposition de fin???

Citation:
Pour le blocage, il se reproduit assez aisément: par exemple avec toutes les figurines présentes 1 fois, synergies combo avec 1 carte ==> ca bloque

Ok Wink je vais déboguer ça

Citation:
Au passage, tu confirmes que synergie "pour tous" correspond à une aura (de Raelin par ex) ou un pouvoir de guérison qui peut s'appliquer à toutes les armées? Que signifie alors 'uniquement' et 'exactement x carte(s)"?
Même question avec "Synergie Combo".

Oui c'est ça, "Synergie pour tous" ce sont tous les effets bénéfiques pour sa propre armée ou l'armée de ses alliés. "Uniquement" veut dire que tu souhaite uniquement des cartes ayant des "synergie pour tous" et "Exactement" veut dire que tu souhaites X cartes ayant des "synergie pour tous". Idem pour les "Synergie Combo"

Citation:
Je cherche la petite bête mais si je mets que je possède toutes les unités en double, le générateur peut construire des armées avec plusieurs fois un hero unique ou une escouade unique. Dans ce cas, peut-être devrais-tu brider le compte de ces unités/escouades à 0 ou 1 dans la déclaration des unités disponibles.
Par contre, je note qu'il ne mets pas plus que 3 fois la même unité/escouade.

Tu fais bien de chercher la petite bête Smile ça me permet de proposer un programme utile à tout le monde. Pour les unités "Unique" oui j'ai pas traité le cas, mais bon, c'est pas très compliqué à gérer.

Citation:
POINT D'AMELIORATION
Il devrait être possible de rajouter des opérateurs booléens (ET / OU) entre chacun des 3 types de contraintes plutôt que d'avoir des armées exclusives.
==> permettrait de créer une armée Einar AVEC synergie ou une armée EINAR de corps à corps et le top: une armée Utgar en corps à corps avec Synergie.
Mais bon ce n'est pas moi qui programme - disons que c'est une option qui ajoutera de l'intérêt à ton prog.

Par contre là, c'est chaud... Si je veux tout combiner, faut peut être que je revois tout mon code et penser à un nouveau système de tirage...
Voir le profil de l'utilisateurEnvoyer un message privé
sylvaindesert
Participant


Inscrit le: 28 Fév 2014
Messages: 294
Localisation: Paris

MessagePosté le: Jeu Mai 19, 2016 7:57 am Répondre en citant

Fabien23230 a écrit:
Citation:
Pas si simple que cela le Y<=X: car si tu supprimes la dernière carte tu te pénalises éventuellement lourdement et dans tous les cas cela ne donne pas une armée optimisée au moins en termes de cout. Je suppose qu'à chaque tirage de carte, tu dois regarder combien de points sont encore disponibles et tu tires parmi les cartes qui permettront de ne pas dépasser la limite. Cela peut alors conditionner le tirage N-1 dans certain cas pour le joueur ne possédant pas de cartes à faible cout de type Isamu.
Je ne suis pas certain d'être clair Malade
Un ex. Armée demandée à 500 pts.
Tu es à 400 pts DONC tu ne vas tirer que dans le panel des cartes à cout <= 100 points. Ta carte la moins chère vaut 35 pts et tu as plein d'autres cartes à des valeurs supérieures.
Il serait dommage de tirer à ce moment une armée à 70 pts qui te priverait d'optimiser ton cout d'armée.
Pour éviter cela tu peux demander à combien tu acceptes d'être en-deçà de la limite supérieure et si tu arrives dans une impasse, alors soit tu annules le dernier tirage, soit tu reprends le tirage à zéro.

Oui, je suis d'accord avec toi pour le début. Pas évident d'ajouter de la "logique" dans un tirage "aléatoire" ^^
Par contre j'ai pas compris ta proposition de fin???


Et bien en reprenant mon exemple. Si tu acceptes de "perdre" ou "non optimiser" tes points d'armées à 30 - appelons ce chiffre DELTA - ce qui veut dire que tu acceptes d'avoir une armée à 470 pts au minimum.
Cela signifie alors que le tirage de la dernière carte à 70 sera acceptée.
Si au contraire, tu fixes une valeur plus faible, alors la carte à 70 sera rejetée.
Le codage est assez aisé: tu regardes combien de crédit il reste, tu soustrais DELTA et cela te donne le panel de cartes dans lequel tu peux piocher parmi les restantes. Si aucune carte ne répond au critère, alors il faut recommencer le tirage à 0.

Si tu fixes DELTA à la valeur de la carte la moins chère dont tu disposes alors tu auras toujours au moins une solution à tes tirages avec cette contrainte.


Dernière édition par sylvaindesert le Jeu Mai 19, 2016 8:07 am; édité 1 fois
Voir le profil de l'utilisateurEnvoyer un message privé
sylvaindesert
Participant


Inscrit le: 28 Fév 2014
Messages: 294
Localisation: Paris

MessagePosté le: Jeu Mai 19, 2016 8:04 am Répondre en citant

Fabien23230 a écrit:
Citation:
POINT D'AMELIORATION
Il devrait être possible de rajouter des opérateurs booléens (ET / OU) entre chacun des 3 types de contraintes plutôt que d'avoir des armées exclusives.
==> permettrait de créer une armée Einar AVEC synergie ou une armée EINAR de corps à corps et le top: une armée Utgar en corps à corps avec Synergie.
Mais bon ce n'est pas moi qui programme - disons que c'est une option qui ajoutera de l'intérêt à ton prog.

Par contre là, c'est chaud... Si je veux tout combiner, faut peut être que je revois tout mon code et penser à un nouveau système de tirage...


Je propose, tu disposes.
Ton programme sera bcp plus utile/utilisé (en tout cas par moi) si tu proposes cette option. Je ne crois pas que cela change fondamentalement le programme: tu n'auras plus qu'un seul bouton "Générer" ce qui évitera les erreurs... et il "suffit" de vérifier que la carte ayant été tirée suivant la 1ère contrainte respecte bien la seconde contrainte, puis la 3ème si elles ont été activées.
Voir le profil de l'utilisateurEnvoyer un message privé
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Jeu Mai 19, 2016 2:48 pm Répondre en citant

Bon, j'ai du repenser le code, mais je pense pouvoir faire un seul bouton "Générer" pour toutes les contraintes réunies.
Avant je travaillais avec la liste des cartes disponibles sans traitement préalable. Mais il me suffit de filtrer la liste en fonction de chaque contrainte et de faire un tirage aléatoire sur les cartes restantes.
Voir le profil de l'utilisateurEnvoyer un message privé
Zeldarck
Maître HeroScapien


Inscrit le: 15 Jan 2010
Messages: 3088
Localisation: Paris

MessagePosté le: Jeu Mai 19, 2016 3:28 pm Répondre en citant

T'as un projet git, svn ou quelques part où on peux voir le code/aider/se servir dans ta base de donnée ?

Si tu demandes un truc impossible à ton programme,il ne sais pas s’arrêter, par exemple un unique héros,aucune escouade, 500 points.

tu n'as pas pensé aux héros incommun ou commun, non?

L'idée d'un tel programme est bonne, ça me disais depuis longtemps mais grosse flemme de faire une base de donnée,donc je suis ok pour aider un peu x)

_________________
Ma tactique: BOURIN!!
Voir le profil de l'utilisateurEnvoyer un message privé
sylvaindesert
Participant


Inscrit le: 28 Fév 2014
Messages: 294
Localisation: Paris

MessagePosté le: Jeu Mai 19, 2016 3:55 pm Répondre en citant

Zeldarck a écrit:
T'as un projet git, svn ou quelques part où on peux voir le code/aider/se servir dans ta base de donnée ?

Si tu demandes un truc impossible à ton programme,il ne sais pas s’arrêter, par exemple un unique héros,aucune escouade, 500 points.


Pour le blocage d'une config impossible, soit on trouve un algo intelligent qui va tout de suite dire: "non!", soit on utilise la force brute du PC en demandant de tester N configurations puis de s'arrêter arrivé à N même si aucune solution n'a été trouvée.

Citation:
tu n'as pas pensé aux héros incommun ou commun, non?

J'ai proposé à Fabien de brider le nombre de cartes armées unique à 0 ou 1 pour écarter cette éventualité.

Citation:
L'idée d'un tel programme est bonne, ça me disais depuis longtemps mais grosse flemme de faire une base de donnée,donc je suis ok pour aider un peu x)

La base de donnée existe déjà donc il faut piocher dedans. Je ne sais pas si Fabien a fait la sienne ou utilisé une existante.
Voir le profil de l'utilisateurEnvoyer un message privé
Zeldarck
Maître HeroScapien


Inscrit le: 15 Jan 2010
Messages: 3088
Localisation: Paris

MessagePosté le: Jeu Mai 19, 2016 4:45 pm Répondre en citant

sylvaindesert a écrit:
Zeldarck a écrit:
T'as un projet git, svn ou quelques part où on peux voir le code/aider/se servir dans ta base de donnée ?

Si tu demandes un truc impossible à ton programme,il ne sais pas s’arrêter, par exemple un unique héros,aucune escouade, 500 points.


Pour le blocage d'une config impossible, soit on trouve un algo intelligent qui va tout de suite dire: "non!", soit on utilise la force brute du PC en demandant de tester N configurations puis de s'arrêter arrivé à N même si aucune solution n'a été trouvée.


C'est faisable à la force brute avec de la programmation dynamique je pense.
Mais dans ce cas c'est faisable obligé, si on dit qu'il n'y as pas d'escouades, sélection dans la BDD que sur les héros, après on boucle dessus en essayant toutes les combinaisons possible de 1 héros, donc seulement 1 passage chacun, puis fin de boucle, sortie de pas de possibilité possible.

Les données étant connue à la base il est aussi très facile de les ordonnées par coût pour facilité la vie à l'algo, par exemple il est à la case i, la figurine coûte 50, ça passe pas, donc il va pas chercher plus haut.

En écrivant ça, je trouve ça "marrant" qu'il n'y ai aucun pouvoir pour diminuer les coûts d'autres figurines :c


Pour les héros commun/incommun, c'est surtout dans la notion de représentation des données que je pensais. Car s'ils ne sont pas bien représenté aucun filtre ne sera possible dessus, alors que on pourrai ne vouloir pas plus de 2 héros incommuns, ou carrément aucun, mais ok pour des héros uniques Smile



Yep pour la bdd je sais, pour ça que ça me dit bien de participer là Razz

_________________
Ma tactique: BOURIN!!
Voir le profil de l'utilisateurEnvoyer un message privé
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Jeu Mai 19, 2016 5:26 pm Répondre en citant

Pour les blocages, c'est à moi de gérer les exceptions. Y a pas énormément de combinaisons non plus, je suis pas en train de coder AlphaGo ^^

@Zeldarck: Qu'appelles-tu Héros incommun? unique?

Pour la BDD, je la recréé entièrement au format txt à partir des "Livres" et "Galeries" du Forum
Voir le profil de l'utilisateurEnvoyer un message privé
Yoshi
Grand Participant


Inscrit le: 23 Déc 2006
Messages: 1774
Localisation: Yoshi's Island

MessagePosté le: Jeu Mai 19, 2016 6:20 pm Répondre en citant

Fabien23230 a écrit:


@Zeldarck: Qu'appelles-tu Héros incommun? unique?


Les héros incommuns sont les héros considérés comme uniques mais pouvant être pris plusieurs fois dans une même armée, comme le grand élémental de glace.
Ce sont des héros communs à la différence qu'ils ont plusieurs points de vie et
une carte spécifique à chacun.

_________________
Vive Heroscape !
Voir le profil de l'utilisateurEnvoyer un message privé
Zeldarck
Maître HeroScapien


Inscrit le: 15 Jan 2010
Messages: 3088
Localisation: Paris

MessagePosté le: Jeu Mai 19, 2016 6:37 pm Répondre en citant

Je veux bien la bdd voir du coup Smile

_________________
Ma tactique: BOURIN!!
Voir le profil de l'utilisateurEnvoyer un message privé
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Jeu Mai 19, 2016 6:52 pm Répondre en citant

Citation:
Les héros incommuns sont les héros considérés comme uniques mais pouvant être pris plusieurs fois dans une même armée, comme le grand élémental de glace.
Ce sont des héros communs à la différence qu'ils ont plusieurs points de vie et
une carte spécifique à chacun.

Ok, Merci Yoshi. Je savais même pas que de tels héros existaient Confused donc au final il existe 3 type de cartes armées, Unique, Commun ou Rare?

Citation:
Je veux bien la bdd voir du coup

Elle est incluse dans le lien du premier post, dans les dossiers "cartes" et "images"
Voir le profil de l'utilisateurEnvoyer un message privé
Fabien23230
Participant


Inscrit le: 14 Mar 2006
Messages: 225
Localisation: Creuse

MessagePosté le: Jeu Juin 09, 2016 1:43 pm Répondre en citant

Hello tout le monde,
nouvelle version de mon appli. J'ai retravaillé entièrement mon process de gestions des contraintes.
Du coup, il n'y a plus qu'un seul bouton "Générer" et on peut dorénavant combiner toutes les contraintes.
J'ai ajouté la gestion des cartes Uniques et Communes (me restera à traiter les cartes Héros Rares)
Et j'ai rajouté jusqu'à la Wave 8 incluse.

Voilà, je continuerai de mettre à jour en fonction de vos retour.
Merci Wink

Ps: le lien est sur mon 1er post
Voir le profil de l'utilisateurEnvoyer un message privé
Zeldarck
Maître HeroScapien


Inscrit le: 15 Jan 2010
Messages: 3088
Localisation: Paris

MessagePosté le: Lun Juin 13, 2016 9:42 pm Répondre en citant

Fraudais pouvoir choisir des % plus précis, plusieurs factions, ou au moins un nombre de factions par exemple, mettre par défaut toute la collection, et on retire si on veux.

Yaurai vraiment pas moyen d'avoir ton code? Smile

_________________
Ma tactique: BOURIN!!
Voir le profil de l'utilisateurEnvoyer un message privé
Montrer les messages depuis:      


Powered by phpBB © 2001, 2005 phpBB Group :: Traduction par : phpBB-fr.com
Theme FI Theme fiblack :: Modification Icebear