Poster un nouveau sujet Poster une réponse Page: 1,      >>
Hasard
Auteur Message
Wolfed
Invité
Posté le : Sam 24 Oct 2009, 23:20   Citer 

Bonjour à tous !
Je viens de découvrir ce super site très complet sur la TI82 (même si je possède une 83, ça m'aide beaucoup...)
J'ai décidé l'autre jour de créer un petit programme simple, sachant que je n'ai jamais appris la programmation sur calculatrice (je me suis simplement aidé de programmes déjà faits et j'ai regardé quelles commandes faisaient quoi).
Et finalement je trouve ça plus facile que ça n'en a l'air !
je vous expose donc mon 1er programme et j'espère que vous pourrez m'aider.
Il s'agit tout simplement du célèbre jeu du juste prix (eh oui, encore un !), un chiffre au hasard et il s'agit de le retrouver grâce aux plus ou aux moins. J'ai trouvé ça sympa pour commencer.
Voici le programme :


Code

:Lbl AA
:randInt(1,10000)->N
:Lbl BB
:ClrHome
:Input "TROUVE LE NOMBRE",X
:If X<N
:Then
:Disp " "  (pour sauter un ligne)
:Disp "TROP PETIT"
:Disp " "
:Disp "°*PRESS ENTER*°"
:Pause
:ClrHome
:GotoBB
:End
:If X>N
::Then
:Disp " "
:Disp "TROP GRAND"
:Disp " "
:Disp "°*PRESS ENTER*°"
:Pause
:ClrHome
:GotoBB
:End
:If X=N
:Then
:Disp " "
:Disp "°*YOU WIN*°"
:Disp " "
:Disp "°*APPROVED*°"
:Disp " "°*BY (votre nom)*°"  (juste pour le fun :D)
:Pause
:ClrHome
:Goto X
:End
:Lbl X
:Menu("RECOMMENCE ?","OUI",AA,"NON",CC)
:Lbl CC
:Stop
:Output(1,1"
:End



Bon voilà, j'ai aussi pensé à rajouter dans le menu "Niveau suivant" avec un programme similaire qui dit "Plus grand" et "Plus petit" uniquement dans un encadrement de la solution, pour des valeurs trop éloignées, le programme indiquerait "Trop loin" sans que le joueur sache si il est trop haut ou trop bas.

Enfin bref, tout ça pour demander si il y a du superflu dans mon programme (pour l'alléger) et si il est possible d'ajouter facilement (sans trop changer quoi que ce soit) un compteur pour savoir en combien de coups on a trouvé le bon numéro.

--------------

Ah, et une autre question qui n'a rien a voir, j'ai commencé un autre programme qui traduit l'alphabet en morse. Il est sous la forme :


Code

:ClrHome
:Menu("-ALPHABET-","MORSE",MO)
:Lbl MO
:Input "LETTRE : ",X
:If X=A
:Then
:Disp " "    (toujours la ligne sautée :D)
:Disp " .-"
:Pause
:ClrHome
:Goto MO
:End

:If X=B
:Then
:Disp " "
:Disp " -..."
:[...]



Bon, je sais qu'il existe probablement un moyen plus rapide de faire ça, mais là n'est pas la question : en continuant ainsi jusqu'à Z, le programme marche parfaitement SAUF pour la lettre C et la lettre E. J'ai bien regardé, il n'y a aucune faute, mais le programme s'obstine à me répondre " .-" (le morse de la lettre A) pour les lettres C et E, et aucune autre. J'ai essayé de changer le " .-" en "*(" par exemple, le problème persiste.
D'ou vient-t-il ?

De plus, il y aurait-il un moyen efficace de faire la conversion inverse (de morse en lettres) et l'ajouter au menu sans refaire tout un programme ?

Merci d'avance pour toutes vos réponses (si vous avez le courage de m'aider et de me lire crazy.gif )

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Sam 24 Oct 2009, 23:28   Citer 

Ton problème est simple: en testant si X=A où B ... il regarde la valeur affecter aux variables A,B ... .
Il te suffit donc de donner une valeur à tes variables pour résoudre ton problème.

Et le X n'existe pas dans l'alphabet morse car tu fait varier la variable X.
Dans ce cas, utilise Theta dans ton input plutôt que X.

Enfin pour ton problème du morse à la lettre ça peut être faisable en utilisant soit le graphe soit des menus et cela risque d'être long et compliqué mais je vais essayer de m'atteler à la tache.

Sangohan38

PS: On peut raccourcir ton programme du juste prix: fait une recherche sur le forum avec plus où moins, trouver un nombre ...

 Adresse email Haut de page Bas de page 
 
Wolfed
Invité
Posté le : Sam 24 Oct 2009, 23:39   Citer 

Erf, effectivement je n'avais pas prévu ça...
Je viens de le corriger, ça marche impeccable, merci happy.gif
Faut être vachement attentif pour écrire un programme qui fonctionne quand même moodforlove.gif

  Haut de page Bas de page 
 
S.k-bo
Invité
Posté le : Dim 25 Oct 2009, 1:53   Citer 

Pour ton jeu du juste prix qui marche super bien pouvons nous metre une palette de nombre plus grande car là c'est compris entre 0 et 1 et même je crois que ca n bouge pas de 6 exemple un X = de 0 à 100 non ??

  Haut de page Bas de page 
 
S.k-bo
Invité
Posté le : Dim 25 Oct 2009, 1:55   Citer 

Je reconfirme il s'agit seulement du nombre 6 à trouver donc ne m'y connaissant pas en programtion, je ne peut pas élargir le nombre à trouver

  Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 655
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Dim 25 Oct 2009, 6:11   Citer 

non il est compris entre 1 et 10 000 happy.gif
tu as du faire une erreur

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Wolfed
Invité
Posté le : Dim 25 Oct 2009, 9:51   Citer 

En effet, mais l'erreur provient peut-être du 'randInt' qui peut être facilement confondu avec le 'rand' pour les possesseurs de calculatrices françaises qui ont 'entAléat' ou 'NbrAléat'

  Haut de page Bas de page 
 
S.k-bo
Invité
Posté le : Dim 25 Oct 2009, 11:20   Citer 

Le problème c'est qu'en mettant entaléat, il y a une parenthèse à la fin et que quand je lance le jeu ca me met erreur syntaxe sur cette ligne
Donc que faut-il ajouter après entaléat( ???
Merci de vos réponses

  Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Dim 25 Oct 2009, 11:33   Citer 

tu dois rajouter 1,10000->N après la parenthèse.

 Adresse email Haut de page Bas de page 
 
S.k-bo
Invité
Posté le : Dim 25 Oct 2009, 11:57   Citer 

Merci merci beaucoup ca marche niquel =')

  Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Wolfed
Invité
Posté le : Dim 25 Oct 2009, 12:13   Citer 

Bon, je me suis risqué à ajouté un compteur de coups, et évidemment, il me fait n'importe quoi XD


Code
Lbl AA
:randInt(1,10000)->N
:S=0  <--- (pour faire commencer le score à 0)
:Lbl BB
:ClrHome
:Input "TROUVE LE NOMBRE",X
:If X<N
:Then
:Disp " " 
:Disp "TROP PETIT"
:Disp " "
:Disp "°*PRESS ENTER*°"
:S+1=S   <--------
:Pause
:ClrHome
:GotoBB
:End
:If X>N
::Then
:Disp " "
:Disp "TROP GRAND"
:Disp " "
:Disp "°*PRESS ENTER*°"
:S+1=S   <--------
:ClrHome
:GotoBB
:End
:If X=N
:Then
:Disp " "
:Disp "°*YOU WIN*°"
:Disp " "
:Disp "°*APPROVED*°"
:Disp " "°*BY (votre nom)*°" 
:Pause
:ClrHome
:Output(3,7,S   <---------
:Output(4,6,"COUPS") <----
:Pause
:Goto X
:End
:Lbl X
:Menu("RECOMMENCE ?","OUI",AA,"NON",CC)
:Lbl CC
:Stop
:Output(1,1"
:End



Et si je le fais en 20 coups, il me dit 132 crazy.gif
Qu'est ce qui ne va plus ?
PS : J'ai changé la valeur X du chiffre choisi en valeur thêta au cas où glasses.gif

  Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Dim 25 Oct 2009, 12:39   Citer 

Il faut marquer S+1->S et non S+1=S.

 Adresse email Haut de page Bas de page 
 
Wirekey



Autorisation : Membre
Nb de messages : 240
Inscrit le : Mer 17 Jui 2009, 0:54
Posté le : Dim 25 Oct 2009, 12:56   Citer 


Citer : Wolfed
Bon, je me suis risqué à ajouté un compteur de coups, et évidemment, il me fait n'importe quoi XD


Et si je le fais en 20 coups, il me dit 132 crazy.gif
Qu'est ce qui ne va plus ?
PS : J'ai changé la valeur X du chiffre choisi en valeur thêta au cas où glasses.gif




Code
Lbl AA
0üS
randInt(1,10)üN
Lbl BB
ClrHome
Repeat X=N
Input "TROUVE LE NOMBRE",X
S+1üS
If X<N
Then
Disp " ","TROP PETIT"," ","?*PRESS ENTER*?"
Pause
ClrHome
End
If X>N
Then
Disp " ","TROP GRAND"," ","?*PRESS ENTER*?"
Pause
ClrHome
End
End
Disp "GAGNER EN :
Output(3,7,S
Output(4,6,"COUPS"
Pause
ClrHome
Menu("RECOMMENCE ?","OUI",AA,"NON",CC)
Lbl CC
Output(1,1,"



Voila j'lai modifié rapidement
Il marche Mais tu peux grandement l'améliorer

 Adresse email Haut de page Bas de page 
 
pitilolo



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 25 Oct 2009, 10:31
Posté le : Dim 25 Oct 2009, 12:59   Citer 

bah oui S+1=S c'est pour tester dans un if si S+1 et S ont la meme valeur.

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Dim 25 Oct 2009, 13:10   Citer 

Ce qui est tout à fait impossible (en tout cas avec les lois de mathématiques utilisées et définies par je ne sais plus qui)

 Adresse email Haut de page Bas de page 
 
Wolfed
Invité
Posté le : Dim 25 Oct 2009, 13:15   Citer 

En effet, c'est beacoup mieux comme ça ^^
Merci pour vos corrections !
Je pense que je vais faire pluieurs niveaux de difficulté, comme prévu plus haut.

  Haut de page Bas de page 
 
pitilolo



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 25 Oct 2009, 10:31
Posté le : Dim 25 Oct 2009, 13:30   Citer 

pour le choix du niveau tu peut faire:



Code

output(2,1,"choix du niveau
input Z
randInt(1,Z)üN




le niveau sera compri entre 1 et la variable Z

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Dim 25 Oct 2009, 13:44   Citer 

Ou bien tu met un seul Input:


Code
Input "CHOIX DU NIVEAU:",Z
Int randZ+1->N



Sangohan38

 Adresse email Haut de page Bas de page 
 
Wirekey



Autorisation : Membre
Nb de messages : 240
Inscrit le : Mer 17 Jui 2009, 0:54
Posté le : Dim 25 Oct 2009, 13:55   Citer 

Ou sinn avec un log décimal :

log 1 ( Premier niveau ) = 10
log 2 = 100
log 3 = 1 000
log 4 = 10 000
...

 Adresse email Haut de page Bas de page 
 
pitilolo



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 25 Oct 2009, 10:31
Posté le : Dim 25 Oct 2009, 13:57   Citer 

mais tu peut pas choisir la position de ton texte
c pour ca que je trouve que c mieux d'utiliser output

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse Page: 1,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink