[Ti-Basic] Pb dans un jeu de chiffres...

Résolu
jacksparrow440 Messages postés 45 Statut Membre -  
acuao Messages postés 1306 Statut Membre -
Bonjour,
je voudrais programmer un petit jeu dans lequel on voit des chiffres tomber du haut de l'écran et on doit appuyer sur la touche correspondante avant qu'ils touchent le bas de l'écran.

J'ai réussi à faire défiler les chiffres... mais comment faire entrer au joueur la bonne touche??

Voilà mon code:

ClrHome
ClrDraw
AxrsOff
randInt(0,9)->C
0->H
randInt(1,90)->L
Reapeat H=55
H+1->H
Text(H,L,C)
End


Merci de vos réponses! ;)

2 réponses

  1. acuao Messages postés 1306 Statut Membre 266
     
    Ça fait 3 ans que j'ai pas fait de TI
    CodeTouch( renvoie le numéro de la touche appuyée

    j'avais fait ce programme qui renvoie le numéro de la touche appuyée
    je sais la boucle est pourrie j'aurais du faire un while mais je connaissais pas à cette époque :)

    EffEcr
    0->K
    Lbl 1
    CodeTouch(->K

    If K=0
    Then
    Goto1
    End

    If K =/= 0
    Then
    Disp "Touche:",K
    Stop
    End

    PS sur ma TI-84 Plus Silver Edition (:p) les certaines commandes sont traduites en français comme EffEcr (en vrai de mémoire c'est ClrScrn ou ClrHome enfin tu dois la connaitre...)

    J'ai mis =/= pour le symbole différent car je sais pas le faire sur pc :p
    1
    1. jacksparrow440 Messages postés 45 Statut Membre 2
       
      t'as raison, c'est avec une commande getKey qu'il faut taper la touche, j'a réussi à trouver en cherchant un peu
      mais après il faut faire des tests... et ça ça ralentit le programme =(
      aurais-tu une astuce?
      0
    2. acuao Messages postés 1306 Statut Membre 266
       
      bah non, c'est normal tu rajoutes des sous boucles des sous conditions
      tu rajoute des instruction, c'est normal que ça ralentisse..;
      parcontre ce que tu peux faire, c'est au lieu de défiler ligne par ligne c'est 2 par deux...
      0
    3. jacksparrow440 Messages postés 45 Statut Membre 2
       
      ça y est, j'ai enfin réussi à pondre un programme qui marche et de façon assez rapide!! =D
      j'ai mis toutes les conditions sur la même ligne:

      If (C=1 and K=92) or (C=2 and K=93) ... (C=9 and K=74)


      maintenant, j'ai une petite prétention: les chiffres défilent verticalement mais lassent une traînée derrière eux... y a-t-il un moyen pour qu'un seul chiffres oit visible à l'écran??

      encore merci!
      0
  2. acuao Messages postés 1306 Statut Membre 266
     
    oui

    Output(Y,X,"9")
    Output(Y-1,X," ") /un espace pour remplacer l'ancienne valeur...

    parcontre tu dois faire une condition pour que Y ne vale pas 0.. sinon plantage
    donc

    if Y>=2
    then
    Output(Y,X,"9")
    Output(Y-1,X," ")
    Else
    Output(Y,X,"9")
    End

    sa fait longtemps que j'ai pas pratique il peut y avoir une faute de syntaxe...
    mais le principe est celui ci

    tu peux également faire comme ceci

    Output(Y,X,"9")
    if Y>=2
    then
    Output(Y-1,X," ")
    End

    qui est peut etre plus rapide...

    ces 2 bouts de code sont à insérer dans ta boucle...

    http://www.siteduzero.com/tutoriel-3-122757-apprendre-le-ti-basic-pas-a-pas.html
    0
    1. jacksparrow440 Messages postés 45 Statut Membre 2
       
      wuaaw c parfaaaiitt!!! =D
      merci beaucoup, ça marche nickel!! ;)
      0
    2. acuao Messages postés 1306 Statut Membre 266
       
      de rien :D
      0