Tout d'abord, je pense que tu fais le bon choix en voulant faire métier dans l'informatique. C'est un secteur d'avenir et aujourd'hui, la plupart des objets usuels (téléphone portable, lecteur de DVD, chaine Hifi, télévision, ...) contiennent du logiciel. Ce sera encore plus vrai demain et il faudra de plus en plus de programmeurs.
Je pense que tu veux faire ce qu'on appelle en anglais un "serious game" avec PANORAMIC, c'est à dire un didacticiel sous forme de jeu.
Ton "cahier des charges" est le suivant:
- le programme pose une question
- l'utilisateur réponds à la question
- le programme compare la réponse proposée à une réponse type
- le programme affiche que c'est correct ou propose la solution en cas d'erreur
- le programme passe à une autre question
- le programme s'arrête s'il n'y a plus de questions
Je vais regarder comment programmer ça de la manière la plus simple.
Déjà, au niveau de l'interface avec l'utilisateur et des objets utilisés, on peut proposer la question avec un
ALPHA (objet 1) et mettre un
EDIT (objet 2) pour que l'utilisateur tape sa réponse.
On place un
BUTTON (objet 3) pour lancer la comparaison.
Ensuite, pour le traitement, on utilise 2 variables string (reponse_correcte$ et reponse_utilisateur$), l'utilisation de variables permettra par la suite d'utiliser le même traitement de comparaison pour différentes questions.
On clique sur un
BUTTON pour lancer le traitement de comparaison: lorsque le bouton est cliqué, et on lit le contenu de l'
EDIT par reponse_utilisateur$=TEXT$(2) et on compare à reponse_correcte$.
Si c'est la même chose, on écrit dans l'
ALPHA que c'est correct, sinon, on affiche la bonne réponse.
On efface l'
EDIT.
Voici la base:
- Code:
-
dim reponse_correcte$, reponse_utilisateur$
label compare
rem création des objets
alpha 1
caption 1,"Quel est le prénom du Président de la république?"
reponse_correcte$="Nicolas"
edit 2:top 2,50
button 3:top 3,100:caption 3,"OK"
rem si on clique sur le bouton, on exécute compare
on_click 3,compare
end
compare:
rem lecture de la réponse de l'utilisateur
reponse_utilisateur$=text$(2)
if reponse_utilisateur$=reponse_correcte$
caption 1,"C'est correct"
else
caption 1,"La réponse correcte est "+reponse_correcte$
end_if
text 2,"":rem on efface l'EDIT
return
Tu peux transformer le programme pour mettre plusieurs questions (tu mets une boucle
FOR par exemple). Si tu as 5 questions à poser, tu fais:
- Code:
-
FOR I=1 TO 5
ton traitement : text 1,"question":reponse_correcte$="la réponse"
NEXT I
Une difficulté, c'est que l'utilisateur doit répondre exactement ce qui est prévu pour la réponse. Par exemple, s'il tape en majuscule NICOLAS, sa réponse sera considérée comme fausse, ou aussi s'il tape des espaces après ou avant sa réponse.
Pour éviter cela,
tu peux éliminer les blancs à droite et à gauche par
- Code:
-
reponse_utilisateur$=trim$(text$(2))
et pour éliminer le problème d'une frappe en majuscule, tu peux comparer dans le if, la réponse convertie en majuscule par rapport à la saisie convertie elle aussi en majuscule:
- Code:
-
if upper$(reponse_utilisateur$)=upper$(reponse_correcte$)