Projet question réponse
Posté le 01/04/2017 21:44
Bonjour à tous je lance mon premier petit projet (un trivial/Un qcm quoi genre nope quiz ^^')
Je sais que ça parait nul !
Mais je me lance tout juste dans la programmation et plusieurs problématiques se posent à moi !
1 - Il me faut des questions pertinentes et d'une difficulté croissante
(plus pertinentes que ça quoi)
2 - Un système de Qcm et d'entrée de données solide pour qu'il soit facilement répliqué (j'en ai fait une ébauche absolument pas optimisée)(
(
l'entrer de données)
(
là le Qcm)
3 - Des niveaux de difficultés (facile, normal, difficile et un bonus)
4 - Un système de score et de vie !
(Aux bout de 3 fautes, hop on recommence
Pour la première problématique j'ai une idée des questions, mais libre à vous d'en rajouter / d'en proposer.
Ensuite comme je l'ai dit précédemment, j'ai une ébauche du système de Qcm mais il me faudrait de l'aide ! (des bugs subsistent !)
Et pour finir il me manque des connaissances pour certaines fonctions du jeu
Ma progression juste ici
ps:le graphisme est secondaire pour le moment il faudrait que j'utilise la fonction "locate"mais je n'ai pas encore les bon automatisme
(comme vous pouvez le voir le menu est issue de la fonction du même nom j'utiliserais sûrement photocasio pour qu'il soit plus propre)
pour l'instant
3ãVÙ
Lbl äÙ
3ãVÙ
Goto ªÙ
Lbl LÙ
ClrTextÙ
"Ze perdu "ãStr 3Ù
Locate 18,7,"[F1]"Ù
Ù
DoÙ
Locate 1,4,Str 3Ù
StrRotate(Str 3,1)ãStr 3Ù
For 1ãB To 250Ù
NextÙ
LpWhile GetkeyÈ79Ù
Goto äÙ
Lbl ªÙ
DoÙ
Locate 7,3,"ZeQuizz"Ù
Locate 6,4,"Chargement"Ù
0ãTÙ
Send 38K50Ù
ClrTextÙ
LpWhile T=10Ù
0ãLÙ
Menu " #E6A6Menu#E6A6","Le Jeu",1,"Les Regles",2,"Credits",4,"Quitter",3Ù
ClrTextÙ
Lbl 3Ù
Locate 10,4,"Bye"Ù
Locate 17,7,"[EXE]"Ù
StopÙ
Lbl 2Ù
"Retrouve la reponse a la question pose ·!· Elles peuvent etre fourbe"Ù
Locate 18,7,"[F1]"Ù
DoÙ
GetkeyãTÙ
LpWhile TÈ79Ù
ClrTextÙ
Goto ªÙ
Lbl 4Ù
Locate 7,1,"Credits:"Ù
Locate 1,2,"Merci a planeteÖcasio"Ù
Locate 5,3,"Surtout Lephe"Ù
Locate 5,4,"et DarkStorm"Ù
Locate 5,5,"Par EIRBLAST"Ù
Locate 18,7,"[F1]"Ù
DoÙ
GetkeyãTÙ
LpWhile TÈ79Ù
ClrTextÙ
Goto ªÙ
Lbl 1Ù
0ãAÙ
For 1ãA To 7Ù
Locate 1,A,"@7C"Ù
NextÙ
0ãBÙ
For 1ãB To 7Ù
Locate 21,B,"@7C"Ù
NextÙ
Locate 2,1,"Vies:"Ù
Locate 7,1,VÙ
Locate 9,3,"2+2="Ù
Locate 3,5,"[F1]3.14@7C[F2]42"Ù
Locate 3,6,"[F3]2 @7C[F4]2À2Ù
0ãRÙ
DoÙ
GetkeyãRÙ
LpWhile R=0Ù
ClrTextÙ
Locate 18,7,"[F6]"Ù
"Deux possibiliter,Sois t'es en CP,Sois tu l#E596a rate(e)."ãStr 1Ù
"C'etait facile"ãStr 2Ù
If R=49Ù
Then Locate 3,4,Str 2Ù
Else Locate 3,3,StrLeft(Str 1,18)Ù
Locate 3,4,StrMid(Str 1,19,16)Ù
Locate 2,5,StrMid(Str 1,35,20)Ù
V-1ãVÙ
IfEndÙ
DoÙ
GetkeyãKÙ
LpWhile KÈ29Ù
ClrTextÙ
0ãAÙ
For 1ãA To 7Ù
Locate 1,A,"@7C"Ù
NextÙ
0ãBÙ
For 1ãB To 7Ù
Locate 21,B,"@7C"Ù
NextÙ
Locate 2,1,"Vies:"Ù
Locate 7,1,VÙ
Locate 1,2,"Quelle est la couleurÙ
Locate 3,3,"du Cheval Blanc"Ù
Locate 6,4,"d#E596HenriIV"Ù
Locate 2,5,"[F1]Vert @7C[F2]Rouge"Ù
Locate 2,6,"[F3]Blanc@7C[F4]Bleu"Ù
0ãRÙ
DoÙ
GetkeyãRÙ
LpWhile R=0Ù
ClrTextÙ
Locate 18,7,"[F6]"Ù
"Tu veux mes lunettes?"ãStr 1Ù
"Bof la reponse est dans la question."ãStr 2Ù
If R=59Ù
Then Locate 2,3,StrLeft(Str 2,18)Ù
Locate 1,4,StrMid(Str 2,19)Ù
Else Locate 1,4,Str 1Ù
V-1ãVÙ
IfEndÙ
0ãKÙ
DoÙ
GetkeyãKÙ
LpWhile KÈ29Ù
ClrTextÙ
0ãAÙ
For 1ãA To 7Ù
Locate 1,A,"@7C"Ù
NextÙ
0ãBÙ
For 1ãB To 7Ù
Locate 21,B,"@7C"Ù
NextÙ
Locate 2,1,"Vies:"Ù
Locate 7,1,VÙ
Locate 3,2,"Quel est le 2eme "Ù
Locate 2,3,"element du tableau"Ù
Locate 5,4,"Periodique"Ù
Locate 2,5,"[F1]:He @7C[F2]:Xe"Ù
Locate 2,6,"[F3]:Ru @7C[F4]:Os"Ù
0ãRÙ
DoÙ
GetkeyãRÙ
LpWhile R=0Ù
ClrTextÙ
Locate 18,7,"[F6]"Ù
"Tu n#E596est pas noble."ãStr 1Ù
"Tu es trop gazeux"ãStr 2Ù
If R=79Ù
Then Locate 2,4,Str 2Ù
Else Locate 3,4,Str 1Ù
V-1ãVÙ
IfEndÙ
V=0×Goto LÙ
ClrTextÙ
"A"Ù
Date 10/04/2017
C'est pourquoi je demande de l'aide je pose le programme (enfin l'embryon) libre a vous de m'aider a l'améliorer !
Je vous demande juste de ne pas vous l'approprier !
Merci d'avoir lu un noob dans le domaine EIRBLAST
Édit admin : 26 fautes corrigées, c'est un beau score (et je suis fatigué, donc il doit en rester)…
Fichier joint
Citer : Posté le 02/04/2017 01:28 | #
Salut à toi Eirblast !
N'hésite pas à présenter ton jeu plus en détail. Des screenshots ou des vidéos sont indispensables pour attraper l'attention de tes lecteurs.
Pour ce qui est de l'aide, Lephe explique bien que :
« Je ne te le cache pas, trouver des gens prêts à travailler avec soi et toujours dur. Des membres de longue date et largement reconnus comme compétents reviennent parfois bredouilles. ^^' Disons qu'une étape importante pour obtenir du soutien est de montrer avant que ce que tu fais en vaut le coup. Le forum OSDev résume ça très bien dans un cadre plus général :
Bon, après c'est pas si diabolique que ça, mais commence par créer un topic et montrer des images de ce que tu fais ! C'est ça qui intéresse les gens au fond. »
Citer : Posté le 02/04/2017 10:51 | #
Ah ! merci pour ta réponse je vais faire quelques screen alors ^^.
N'hésite pas à présenter ton jeu plus en détail. Des screenshots ou des vidéos sont indispensables pour attraper l'attention de tes lecteurs.
Citer : Posté le 02/04/2017 17:51 | #
Oulà ><
Quand tu disais "Je n'utilise pas les Locate", je pensais que tu faisais tout en mode graphique, ce qui est agréable. Mais là, non. C'est juste ignoble ta manière de faire.
D'autant plus qu'avec les Locate tu peux afficher des strings, et entre autres stocker tes questions réponses sous cette forme, le | symbolisant un retour à la ligne :
1→R
Ensuite pour afficher ça, tu découpe la string et tu utilise les Locate :
Do
StrSrc(Str 1, "|")→P
If P=0
Then Locate 1, A, Str 1
Else Locate 1, A, StrLeft(Str, P-1)
IfEnd
StrRight(Str 1, StrLen(Str 1) - P)→Str 1
LpWhile P≠0
Après, tu n'a plus qu'à gérer les entrées clavier, et regarder si ça correspond à la variable R, qui contient l'ID de la bonne réponse
Ajouté le 02/04/2017 à 17:53 :
Ah oui, et aussi : on dit (et écrit) "Réponse".
Et "à la question posée" x)
Citer : Posté le 03/04/2017 11:31 | #
Ne t’inquiète pas tout ça a déjà été changer ! je suis en pleine apprentissage et forcement je fait ce qui me parait logique et c'est souvent de la merde !
Je change le reste de suite !
(j'utilise Locate maintenant mais c'est toujours moche ^^')
La plus part du code a été écrit en cours de math ou je devais aussi suivre le prof pour ne pas me prendre des sales notes
alors ouais en ce moment j'ai plus de temps je m'empresse d'aller corriger tout ça !
Merci pour ton aide !
Ps:Je ne comprend pas exactement le string (c'est un genre de Getkey ?)
EDIT:Ah ok d'accord il faut que je crée une liste a part du coup ? et je crois qu'il y a une erreur à la ligne 3 ou c'est un caractère non pris en compte.
Citer : Posté le 03/04/2017 15:16 | #
Nope, les strings ce sont des variables chaines de caractères.
En gros ça permet de manipuler du texte.
Quelques liens :
– Série de vidéos de Totoyo : 1ère partie, 2ème partie
– Le tutoriel Basic du site
– Une application simple : le jeu du pendu
Citer : Posté le 08/04/2017 14:25 | #
Petit Up j'ai lue la moitié des cours de programmation et je ne vois toujours pas l'utilité des string dans mon programme
de plus j'ai une ERREUR[saut]A la 2 question je crois,
et j'ai tous recommencer depuis le début.(au niveaux du programme )
Citer : Posté le 08/04/2017 14:39 | #
Les strings (« chaînes de caractères ») permettent non seulement de stocker mais également de manipuler du texte. Ainsi, tu peux exécuter un seul morceau de programme pour afficher et attendre la réponse d'une question, en supposant que le texte ait été placé dans une variable de type Str à l'avance. Tu n'as pas à écrire plusieurs fois le code d'affichage.
Même si, tant que ton affichage est aussi basique que « "Texte" », tu n'as pas grand-chose à gagner de la généralisation...
Citer : Posté le 08/04/2017 21:17 | #
Oui Oui ça j'ai compris j'ai fait des programmes témoin ! (Str+condition) mais Faire écrire l'utilisateur au final je trouve que c'est pas une bonne idée,pour l'ergonomie et pour le coter intuitif, mais je me heurte a des nouveaux problème j'ai trop utiliser les labels et j'aimerais savoir si il n'y a pas une autre alternative ?(Ont a 28 caractère sachant que j'utilise R,A,S et 2 par question sa fait 12 Question de plus je crois qu'il y a un conflit ma calculatrice m’affiche des syntaxe Erreur sur certain labels (le B)
Ensuite Je vais sûrement faire le programmes en 2 programmes (avec une sous partie) pour l'optimisation.(le programme devient lourd ,je travaille sur l'opti avant d'aller plus loin !)
(Question y'a t'il un maximum de label ?)
Citer : Posté le 08/04/2017 21:28 | #
L'intérêt des Str n'est pas de faire écrire l'utilisateur mais de manipuler mieux les données textuelles (ie. les questions et les réponse) de ton programme.
Tu n'aurais pas de problème de labels si tu implémentait de manière unique la partie du choix... avec un code découpé par exemple comme ceci :
// Q: Numéro de la question
// → Str 1: Contenus de la question
Lbl L
Q=1⇒"Question 1 ?|Réponse 1|Réponse 2|Réponse 3"→Str 1
Q=2⇒"Cheval ?|Blanc|Brun|Noir"→Str 1
... (on peut faire mieux)
Goto D
// Affichage de la question (DISPLAY)
// Str 1: Question et réponses séparés par des barres
// → R: Nombre de réponses
Lbl D
... (avec le code de Darks')
... (calcul de R)
Goto G
// Acquisition de la réponse (GET)
// R: Nombre de réponses possibles
// → A: Numéro de la réponse choisie
Lbl G
0→A
While A=0
While Getkey:WhileEnd
While Not Ans:Getkey:WhileEnd
MOD(Ans,10)≠9⇒WhileEnd
8-Int(Ans/10)→A
A>R⇒0→A
WhileEnd
// etc...
Normalement on ne programme pas à vue, on prévoit un minimum sinon c'est sûr que ça marche pas. Et il y a autant de labels que de caractères pouvant s'écrire comme une lettre, un chiffre, et peut-être deux autres. Clairement c'est limité.
Citer : Posté le 08/04/2017 21:41 | #
Wow j'ai encore tellement a apprendre ..
Bon je vais tenter d'implémenter Le Str dans le code ...sur ceux j'y vais de ce pas.
Merci de prendre le temps avec moi
Citer : Posté le 08/04/2017 23:23 | #
T'inquiète, on est tous passé par là, c'est la moindre des choses x)
Bref, pour les strings, si t'as du mal, hésite pas à demander, c'est vraiment un outil puissant.
Citer : Posté le 09/04/2017 15:05 | #
J'ai fais un test plutôt concluant,
voilà le code
"blabla"→Str 1 [green] //Là ce que dit la calculatrice si on ce trompe[/green]
"Blabla2"→Str 2 [green]//Là si on réussi.[/green]
Locate 18,7,"[F6]"
If R=49
Then Locate(je dois voir ça après)Str 2 [green]//j'affiche Str2 si c'est bon[/green]
Else Locate(là aussi)Str 1 [green] //Et Str1 si c'est faux[/green]
V-1→V [green]//J’enlève 1 vie si la réponse est fausse[/green]
IfEnd
Ensuite comment je fait si j'ai un Str qui est plutôt long ? (plusieurs ligne)
Et je ne voulais pas utiliser les vôtres (parce qu je ne l'ai comprend pas )et j'aurais du mal en cas de modification !
Citer : Posté le 09/04/2017 15:08 | #
Il y a déjà de l'idée. Tu as réussi à séparer la partie « chargement de la question » (2 premières lignes) de la partie « vérification de la réponse et affichage de résultat ».
Si une Str fait plusieurs lignes, il faut l'afficher en plusieurs fois. Il te suffit de détecter les chaînes de plus de 21 caractères (StrLen Str 1>21) et de les découper en utilisant StrMid().
Je pense que la partie du tuto Basic sur les chaînes de caractères pourra te permettre de maîtriser efficacement les fonctions de manipulation.
Citer : Posté le 09/04/2017 15:14 | #
ok je vais relire le cours et peaufiné les détails et je reviendrait avec le résultat un peu plus tard aujourd’hui ou demain.
Ajouté le 10/04/2017 à 06:53 :
Enfin ! Tout marche ! et effectivement les string sont très utiles !
0→RÙ
Do
Getkey→R
LpWhile R=0
ClrText
Locate 18,7,"[F6]"
"Tu n'est pas noble."→Str 1 [green]//J'ai réussi a découper les strings là je n'en avais pas besoins[/green]
"Tu es trop gazeux"→Str 2
If R=79
Then Locate 2,4,Str 2
Else Locate 3,4,Str 1
V-1→V
IfEnd
V=0⇒Goto L [green]//J'ai rajouter le "GameOver"[/green]
Do
Getkey→K
LpWhile K≠29
J'ai besoins de vous maintenant pour les questions(je d'autre idée mais c'est une surprise) et ensuite je finirais le programme. et je le mettrais en ligne !
Ajouté le 10/04/2017 à 15:13 :
Ah oui pour pimenter les choses j'vais ajouter des succès a débloquer avec une suite de réponse
Et des animations pour une espèce d'histoire,J'ai du coup besoin de vous pour le système de succès (avec les liste)
Voilà Merci d'avance !