Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Projet question réponse
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

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
Graphisme
   50%

Système de Quéstion
   100%

Score/Vies
   75%

Quéstion
   10%

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


Dark storm Hors ligne Labélisateur Points: 11631 Défis: 176 Message

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 :
Si votre réputation ne vous précède pas, les gens expérimentés vont se méfier de vous et manquer de confiance pour vous rejoindre.

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. »
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

Citer : Posté le 02/04/2017 10:51 | #


Ah ! merci pour ta réponse je vais faire quelques screen alors ^^.
Dark storm a écrit :

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.



:^)
Dark storm Hors ligne Labélisateur Points: 11631 Défis: 176 Message

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 :
"Quelle est la couleur|du cheval blanc|d'Henri IV ?|[F1] Blanc|[F2] Vert|[F3] Gris"→Str 1
1→R


Ensuite pour afficher ça, tu découpe la string et tu utilise les Locate :
1→A
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)
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

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.
:^)
Dark storm Hors ligne Labélisateur Points: 11631 Défis: 176 Message

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
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

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 )

:^)
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

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...

Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

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 ?)

:^)
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

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 :

// Chargement de la question (LOAD)
// 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é.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

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
:^)
Dark storm Hors ligne Labélisateur Points: 11631 Défis: 176 Message

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.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

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 !
:^)
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

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.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eirblast Hors ligne Membre Points: 122 Défis: 4 Message

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 !

:^)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 127 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd