XL 2010 Créer un jeu du style Akinator sur VBA à partir d'une base de données

Loreen

XLDnaute Nouveau
Bonjour tout le monde,
Je me présente Loreen, je suis nouvelle sur le forum et novice en VBA.
Je dois rendre un projet dans lequel je dois faire deviner des personnages d'Harry Potter à partir de critères bien défini et qui se référeraient à la base de données pour trouver le personnage adéquat.
Est ce que vous sauriez quelle procédure je dois utiliser svp?
Merci d'avance pour votre retour.
 

Rouge

XLDnaute Impliqué
Bonjour,

"Est ce que vous sauriez quelle procédure je dois utiliser svp? "

OUI, papier, crayon et gomme, si vous savez faire ça, il suffira de traduire en VBA (une paille si vous ne connaissez pas le VBA).
Mais d'abord il faut trouver le raisonnement pour arriver à la solution finale.

Poser une question, répondre par oui ou par non, et suivant le cas poser une autre question et ainsi de suite jusqu'à la solution finale.

Mais auparavant, il faut connaître les personnages et leurs attribuer une liste des critères les concernant, puis créer une liste de questions bien orientées afin de diriger vers la solution finale.

Cdlt
 

Loreen

XLDnaute Nouveau
Bonjour,

"Est ce que vous sauriez quelle procédure je dois utiliser svp? "
OUI, papier, crayon et gomme, si vous savez faire ça, il suffira de traduire en VBA (une paille si vous ne connaissez pas le VBA).
Mais d'abord il faut trouver le raisonnement pour arriver à la solution finale.

Poser une question, répondre par oui ou par non, et suivant le cas poser une autre question et ainsi de suite jusqu'à la solution finale.

Mais auparavant, il faut connaître les personnages et leurs attribuer une liste des critères les concernant, puis créer une liste de questions bien orientées afin de diriger vers la solution finale.

Cdlt

Bonjour,

Merci pour votre retour,
Justement je voulais éviter de faire de cette manière.
J'ai une quarantaine de personnages.
Je pensais qu'il pouvait exister sur Excel, une macro pouvant faire une recherche automatique en fonction de réponses données.

Cordialement
 

Rouge

XLDnaute Impliqué
Vous avez écrit
Justement je voulais éviter de faire de cette manière. Et comment croyez-vous que sont construits les programmes?

et auparavant j'avais écrit:
Mais d'abord il faut trouver le raisonnement pour arriver à la solution finale.

Pour écrire une macro, il faut bien partir de quelque chose. Une macro ne fait que lire et exécuter son contenu, mais avant tout cela, il faut bien la construire et suivre un raisonnement sur la façon de procéder. Ce dernier point qui en fait le premier à solutionner avant de transcrire dans un langage informatique, quel qu'il soit.

Donc commencez par prendre une ou plusieurs feuille de papier, faites un tableau avec les personnages, leurs critères particuliers, écrivez des questions bien orientées pour vousà se diriger tout droit vers la solution unique.
Une fois que vous aurez établi cela, il suffira de transcrire en VBA.

Exemple de questions à ce poser:
1- s'agit-il d'un humain?
si OUI, alors
1-2- s'agit d'un homme?
Si OUI alors
1- 3- Est-il toujours vivant.

si NON
1-2 Est-ce un animal domestique?
si OUI alors
1-3 Miaule -t-il?


etc., etc...
 

Loreen

XLDnaute Nouveau
Vous avez écrit
Justement je voulais éviter de faire de cette manière. Et comment croyez-vous que sont construits les programmes?

et auparavant j'avais écrit:
Mais d'abord il faut trouver le raisonnement pour arriver à la solution finale.

Pour écrire une macro, il faut bien partir de quelque chose. Une macro ne fait que lire et exécuter son contenu, mais avant tout cela, il faut bien la construire et suivre un raisonnement sur la façon de procéder. Ce dernier point qui en fait le premier à solutionner avant de transcrire dans un langage informatique, quel qu'il soit.

Donc commencez par prendre une ou plusieurs feuille de papier, faites un tableau avec les personnages, leurs critères particuliers, écrivez des questions bien orientées pour vousà se diriger tout droit vers la solution unique.
Une fois que vous aurez établi cela, il suffira de transcrire en VBA.

Exemple de questions à ce poser:
1- s'agit-il d'un humain?
si OUI, alors
1-2- s'agit d'un homme?
Si OUI alors
1- 3- Est-il toujours vivant.

si NON
1-2 Est-ce un animal domestique?
si OUI alors
1-3 Miaule -t-il?


etc., etc...
Ok merci,
Dans ces cas là, il faut que je mette des inputbox et des if c'est bien ca?
En fait j'ai déjà mis les caractéristiques dans une base de données. Je vous envoie mon fichier pour que vous me dites ce que vous en pensez svp.

Merci
 

Pièces jointes

  • Projet VBA Mehdi.xlsm
    282.1 KB · Affichages: 22

Rouge

XLDnaute Impliqué
Je me présente Loreen, je suis nouvelle sur le forum et novice en VBA. Ah bon, et c'est vous qui avez écrit le code?

Je suis allé sur la feuille "Recherche" et j'ai cliqué sur "Démarrer le jeu" et les questions s'enchaînent, bon, ça ne va pas très loin, mais le principe est le bon.
Donc cela fonctionne correctement. Je ne comprends pas ce que vous voulez de plus, il reste juste à compléter le nombre de questions-réponses.
 

Loreen

XLDnaute Nouveau
Je me présente Loreen, je suis nouvelle sur le forum et novice en VBA. Ah bon, et c'est vous qui avez écrit le code?

Je suis allé sur la feuille "Recherche" et j'ai cliqué sur "Démarrer le jeu" et les questions s'enchaînent, bon, ça ne va pas très loin, mais le principe est le bon.
Donc cela fonctionne correctement. Je ne comprends pas ce que vous voulez de plus, il reste juste à compléter le nombre de questions-réponses.

Merci beaucoup,
je voulais m'assurer que j'avais bien compris.
Je suis en train d'étoffer les questions.

Merci pour tout
 

Loreen

XLDnaute Nouveau
Merci beaucoup,
je voulais m'assurer que j'avais bien compris.
Je suis en train d'étoffer les questions.

Merci pour tout
Je me présente Loreen, je suis nouvelle sur le forum et novice en VBA. Ah bon, et c'est vous qui avez écrit le code?

Je suis allé sur la feuille "Recherche" et j'ai cliqué sur "Démarrer le jeu" et les questions s'enchaînent, bon, ça ne va pas très loin, mais le principe est le bon.
Donc cela fonctionne correctement. Je ne comprends pas ce que vous voulez de plus, il reste juste à compléter le nombre de questions-réponses.

En étoffant mes questions, je me rends compte que j'ai des problèmes avec la procédure if.
 

Pièces jointes

  • Projet VBA Mehdi.xlsm
    286.1 KB · Affichages: 17

Rouge

XLDnaute Impliqué
Auparavant, avez-vous établi un ordinogramme comme ceci? à compléter bien sûr.
S'il est bien construit, le code qui en découle se fera rapidement et simplement
loreen.JPG
 

Rouge

XLDnaute Impliqué
Ce n'est pas bon
Si vous posez une question, on ne doit pouvoir répondre que par "OUI" ou par "NON", donc il n'y a que 2 possibilités. or dans votre cas, que se passe-t-il? quel aiguillage prendre à la question suivante: "Appartient elle à Gryffondior ?, puisqu'il y a 3 solutions possibles.

Si vous avez suivi mon petit ordinogramme, vous voyez bien qu'il n'y a que 2 directions possibles à la question posée, c'est "OUI" ou c'est "NON", et suivant la réponse, on se dirige, soit vers une nouvelle question, soit on arrive à la solution finale.
 

Loreen

XLDnaute Nouveau
il n'y a pas 3 solutions possible.
Je pose la première question :
- est ce que c'est une femme ? oui/non
- est ce qu'elle appartient à Griffondor? oui / non si c'est non, je demande si elle appartient à Poufsouffle (oui/non). Si c'est non encore, je demande si elle appartient à Serdaigle (oui/non). Si c'est non, je demande si elle appartient à Serdaigle (oui/non). Si non encore, je demande si elle appartient à Serpentard
 

Rouge

XLDnaute Impliqué
Visiblement, vous n'assimilez pas la notion d'ordinogramme
"il n'y a pas 3 solutions possibles.
Je pose la première question :
- est ce que c'est une femme ? oui/non
- est ce qu'elle appartient à Griffondor? oui / non si c'est non, je demande si elle appartient à Poufsouffle (oui/non). Si c'est non encore, je demande si elle appartient à Serdaigle (oui/non). Si c'est non, je demande si elle appartient à Serdaigle (oui/non). Si non encore, je demande si elle appartient à Serpentard "


Et si on répond "OUI" à toutes ces questions, que se passe t-il?
Je suis désolé, mais comme vous le présentez, ce n'est pas exploitable
Voici l'organigramme que vous devez suivre:
loreen_2.JPG
 

Nairolf

XLDnaute Accro
Salut,

Je trouve que c'est un travail intéressant à faire sur Excel.
Il y a de multiples façon de réaliser le travail demandé, mais comme l'a dit Rouge, il faut bien structurer la logique que l'on veut suivre avant d'écrire le code.

J'avoue, pour des cas pas trop complexes, je n'écris plus cette structure, mais je me la représente quand même mentalement.

J'ai fait quelque chose mais je n'ose pas le mettre en ligne car ça pourrait t'orienter vers une solution que tu n'aurais pas choisi toi-même.

Je te dis ça car je l'ai écrit de façon bien différente, avec quelques contraintes que je me suis imposées :
- Je ne veux pas choisir l'ordre des questions, mais qu'elles se génèrent aléatoirement pour que le jeu ne soit pas répétitif.
- Je ne veux pas générer un code trop complexe, mais je veux plutôt exploiter les fonctionnalités Excel, comme les formules et le filtre avancé.
- Je veux être sûr de balayer toutes les questions si nécessaire (même plusieurs fois dans le cas de choix multiples).
- Je veux formuler les questions pour qu'elles soient grammaticalement et orthographiquement correctes tout en étant simples à définir, pour cela je vais utiliser une formulation neutre dans mes questions.
- Je veux saisir le minimum d'informations en "dur" dans le code.
-...

J'ai mis le fichier, mais je préférerais que tu avances à ta façon le plus longtemps possible avant de l'ouvrir, de mon point de vue, c'est comme ça qu'on apprend le mieux.
 

Pièces jointes

  • Projet VBA Mehdi_Nairolf.xlsm
    964.1 KB · Affichages: 28

Loreen

XLDnaute Nouveau
Visiblement, vous n'assimilez pas la notion d'ordinogramme
"il n'y a pas 3 solutions possibles.
Je pose la première question :
- est ce que c'est une femme ? oui/non
- est ce qu'elle appartient à Griffondor? oui / non si c'est non, je demande si elle appartient à Poufsouffle (oui/non). Si c'est non encore, je demande si elle appartient à Serdaigle (oui/non). Si c'est non, je demande si elle appartient à Serdaigle (oui/non). Si non encore, je demande si elle appartient à Serpentard "


Et si on répond "OUI" à toutes ces questions, que se passe t-il?
Je suis désolé, mais comme vous le présentez, ce n'est pas exploitable
Voici l'organigramme que vous devez suivre:
Regarde la pièce jointe 1089140
Je pense que vous avez raison et que je n'assimile pas la notion d'ordinogramme.
Je vous remercie pour votre aide précieuse
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 119
Membres
103 124
dernier inscrit
Antoine Vdm