Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 1368
Réponses : 8
Type : discussion
Etat : réponses autorisées

Un programme sympa pour tester votre mémoire!

TheNicoss38 le 17/11/2012 à 20:21
Salut à tous!
J'ai concocté un programme assez sympa, bien qu'assez court, qui permet de tester votre mémoire. Il n'est pas trés gros, environ 2000 octets, je pense que l'on peut l'optimiser, mais je suis assez débutant, donc j'attend vos conseils!
Lien de téléchargement : http://www.mediafire.com/?ji6xox05e8z8358
Désolé, je ne donne pas le code, sinon vous avez les réponses winkle.gif

Je vous laisse l'essayer, et j'attends vos avis ! glasses.gif
Samos le 17/11/2012 à 21:56
Hmmm tongue.gif
Tu peux placer aléatoirement les mots dans les menus en utilisant les chaînes de caractères, ça fera plus de challenge la deuxième fois qu'on joue.
Et aussi les
Code

69!:69!:69!:69!
69!:69!:69!:69!:69!

Code

For(A,1,9
69!
End
TheNicoss38 le 17/11/2012 à 22:04
Salut! Je m'y connait pas trop en chaîne... Mais merci pour les factoriels 69, c'est vrai que ça m'énerve un peu de les recopier par dizaines --'
Merci!
Samos le 17/11/2012 à 22:17
en fonction d'un nombre aléatoire, tu copiera tel mot dans la chaîne que tu affichera dans le menu comme ça:
Code

Menu("TROUVE LE MOT","VACHE",1,Chaîne1,2,"LUNETTES",3

Pour mettre du texte dans une chaîne tu dois faire:
Code

"TEXTE -> Chaîne1
TheNicoss38 le 17/11/2012 à 22:22
Ahhhhhhhhhhhh ok ! Merci =)

Mais faire de l'aléatoire avec des chaînes, je vois pas comment! Aide moi ^^!
Désolé, je suis débutant sur certains points.
Sinon, tu trouves que l'idée de mon programme est bonne? Parce-que je cherchais des idées depuis 1 semaine et j'ai enfin trouvé! Mais je sais pas ce que ça vaut, alors un avis ne serait pas de refus winkle.gif
Samos le 17/11/2012 à 22:48
Je suis un peu fatigué pour t'expliquer ce soir eyeonly.gif
https://web.archive.org/web/20[...]caracteres.html
Tu trouvera des choses intéressantes
linkakro le 17/11/2012 à 23:34
Ce jeu est simple mais les mots sont bien trouvés je pense. happy.gif

Il n'y a pas nécessité de mettre des 69! à l'intérieur du For, le faire est plus efficace mais le réglage du temps est moins précis.

Génère un nombre aléatoire puis utilise la fonction sub() pour extraire des morceaux d'une chaine prédéfinie.
C'est ainsi qu'on crée aléatoirement des chaines.

Consulte le tutoriel déjà signalé pour des informations générales sur la TI. (et donc sur les chaines en particulier)
Jette un oeil à ça pour quelques détails sur les chaines.
https://tout82.pages-perso.fre[...].php?sujet=2277

Mon premier objectif :
utiliser un seul menu et une seule séquence d'affichage utilisant une base de données contenant les mots. (pour cela une chaine de caractères et des sous-chaînes)

Conseil pour atteindre cela :
soit les mots devront avoir tous une longueur maximale et les vides remplacés par des espaces, soit il faudra pouvoir retrouver la position et la longueur des mots.
Pour cette seconde option, il faut soit utiliser une liste de données ce qui est lourd mais rapide soit effectuer une recherche à chaque fois ce qui est léger mais lent.

Une fois que la base fonctionne on peut utiliser un aléatoire pour choisir les mots.

Ensuite et c'est là que cela se complique le plus, on peut aussi mélanger les mots d'un même round au sein du menu et de l'affichage.
Je ne sais pas encore comment je le ferai car je m'occupe d'abord du reste.

problème :
il faut pouvoir savoir quel choix du menu est juste si on veut utiliser un seul menu.
Il faut une liste ou effectuer une recherche ou bien ranger les données dans un ordre précis et que tous les affichages utilisent de l'aléatoire.

Ci-dessous j'ai choisi d'utiliser la méthode où les mots ont une longueur maximale. Pour l'instant j'ai choisi de stocker dans une liste le numéro des mots valides de chaque round.
Code
ClrHome
Output(4,6,"MEMOIRE"
Output(5,2,"PAR THENICOSS38"
For(W,1,16):69!:End
ClrHome
Lbl M
Menu("***MEMOIRE*** =)","JOUER",1,"QUITTER",2
Lbl 1
ClrHome
Output(1,3,"DES MOTS VONT"
Output(2,4,"S'AFFICHER"
Output(3,4,"RAPIDEMENT"
Output(4,3,"A TOI DE DIRE"
Output(5,2,"QUEL MOT TU AS"
Output(6,4,"VU DANS LES"
Output(7,2,"PROPOSITIONS!!"
Output(8,3,"BONNE CHANCE"
Pause
ClrHome
Output(3,3,"TU ES PRET?"
Output(4,3,"ALORS APPUIE"
Output(5,4,"SUR ENTRER
Output(6,3,"POUR DEMARRER"
Pause
ClrHome

 // Le mot le plus long est "bacher" et fait 6 caractères
 // il y a 5 mots par round donc il faudra 30 caractères par round
 // j'ai fait mon exemple avec 3 rounds

"CHAT  TANK  MAT   PAGE  TANK  VACHE CIBLE BACHERVACHE BIBLE JOIE  DUR   MUR   JOIE  MOIS  ->Str1
{3,2,2->L1    // cette liste permettra de savoir quel choix du menu est gagnant à chaque round
 // j'ai mis ça au début pour ne pas trop ralentir le programme à chaque round

0->A
Lbl A
If A=10 // pour s'arrêter au bout de 10 rounds réussis
Goto 2
A+1->A

randInt(0,2->R  // round
1+30R->M // position de référence des mots du round dans la chaine 1

L1(R->N  // prend le Rième terme de la liste L1

Output(1,1,sub(Str1,M,6
Output(8,10,"sub(Str1,M+6,6
For(W,1,16):69!:End
ClrHome
0    // indispensable pour utiliser Ans par la suite
Menu("QUEL MOT A-TU VU",sub(Str1,M+12,6),B,sub(Str1,M+18,6),C,sub(Str1,M+24,6),D
Lbl D
Ans+1
Lbl C
Ans+1
Lbl B
Ans+1  // chaque choix génère 1, 2 ou 3 grâce à Ans qui cumule les sommes

If Ans=N
Goto A    // on continue !

ClrHome
Output(4,6,"RATE!"
Output(5,3,"TU AS PERDU!"
Pause
Goto M
Lbl G
ClrHome
Output(4,6,"BRAVO!"
Output(5,3,"TU AS GAGNE!"
Pause
Goto M
Lbl 2
ClrHome
Disp "AU REVOIR"
blg_flg le 18/11/2012 à 22:31
TheNicoss38 a écrit :
J'ai concocté un programme assez sympa, bien qu'assez court, qui permet de tester votre mémoire. Il n'est pas trés gros, environ 2000 ko.

ahh.gif ahh.gif ahh.gif ahh.gif ahh.gif ahh.gif ahh.gif ahh.gif ahh.gif ahh.gif

20000 Ko? Ce serait pas plutôt 2000 octets? winkle.gif
TheNicoss38 le 19/11/2012 à 13:04
Oui c'est bon c'est corrigé, il fait même exactement 2420 octets, mais je suis en train d'essayer de le minimiser. happy.gif