Problème de code en QBasic.

rcx -  
qbasic45 Messages postés 60 Statut Membre -
Bonjour à tous,

Actuellement j'ai deux problème dans un programme coder en QBasic64.

Voilà le 1er problème, j'ai insérer dans mon programme RANDOMIZE TIMER, pour que le tirage se fasse automatiquement. Mon programme est un jeu de chance chaque lettre correspond à un chiffre au hasard entre 1 et 6.
Celui qui obtient le plus gros chiffre gagne.

Mon problème c'est que quand je choisi une lettre par ex "a" et l'autre choisi "e", le programme affiche très très souvent le même chiffre.

RANDOMIZE TIMER
A = INT(RND * 6) + 1
B = INT(RND * 6) + 1
C = INT(RND * 6) + 1
D = INT(RND * 6) + 1
E = INT(RND * 6) + 1
F = INT(RND * 6) + 1

a = INT(RND * 6) + 1
b = INT(RND * 6) + 1
c = INT(RND * 6) + 1
d = INT(RND * 6) + 1
e = INT(RND * 6) + 1
f = INT(RND * 6) + 1

Mon deuxième problème est le suivant, une question est poser si la réponse est "oui" le programme doit effectuer une boucle sinon si la réponse est "non le programme doit s'arrêter.

Le problème quand je répond "non" une 1er fois il active quand même la boucle, et quand le programme va me redemander si je veux refaire la partie, si je répond "non" une 2ieme fois il s'arrête. Comment faire pour que mon programme s'arrête au 1er "non" ?

PRINT " Veux tu convertir des Euros en Francs "
PRINT ' Espace pour faire lisible.
COLOR 2
INPUT " (O/N) "; reponse_conversion01$

' ******************
' ******************
IF reponse_conversion01$ = "O" OR reponse_conversion01$ = "o" THEN
PRINT ' Espace pour faire lisible.
COLOR 7
PRINT " Lets go ! "
END IF

' ******************
' ******************

PRINT ' Espace pour faire lisible.

DO ' Début de la 3ieme boucle.
INPUT " Quel valeur en Euros veux tu convertir en Francs "; valeur01
PRINT ' Espace pour faire lisible.
COLOR 14
PRINT SPACE$(25); valeur01; " euros = "; valeur01 * 6.55957; " francs. "
COLOR 7
PRINT ' Espace pour faire lisible.
INPUT " Une autre conversion (O/N) "; reponse_conversion01$
LOOP WHILE reponse_conversion01$ = "O" OR reponse_conversion01$ = "o" ' Fin de la 3ieme boucle.

' *******************
' *******************

IF reponse_conversion01$ = "N" OR reponse_conversion01$ = "n" THEN
PRINT ' Espace pour faire lisible.
PRINT " Ok a la prochaine ! "
END IF

Merci de m'avoir lu.

Cordialement rcx

1 réponse

  1. qbasic45 Messages postés 60 Statut Membre 3
     
    bonjour
    1er problème ( me il y a que 6 numero )
    RANDOMIZE TIMER
    10 REM
    a=INT(RND * 9) - 1
    IF A<1 OR A>6 THEN 10
    20 REM
    b=INT(RND*9)-1
    IF b<1 OR b>6 THEN 20
    IF b=a hen 20
    30 REM
    c=INT(RND*9)-1
    IF c<1 OR c>6 THEN 30
    IF c=a OR c=b then 30
    40 REM
    d=INT(RND*9)-1
    IF d<1 OR d>6 THEN 40
    IF d=a OR d=b OR d=c then 40
    50rem
    e=INT(RND*9)-1
    IF e<1 OR e>6 THEN 50
    IF e=a OR e=b OR e=d OR e=c then 50
    60 REM
    f=INT(RND*9)-1
    IF f<1 OR f>6 THEN 60
    IF f=a OR f=b OR f=d OR f=c OR f=e then 60
    fin
    deuxième problème
    10 CLS
    PRINT " Veux tu convertir des Euros en Francs ";
    COLOR 2
    INPUT " (O/N) "; reponse$
    if reponse$="n" then end
    print
    INPUT " Quel valeur en Euros veux tu convertir en Francs "; valeur01
    COLOR 14
    PRINT SPACE$(25); valeur01; " euros = "; valeur01 * 6.55957; " francs. "
    COLOR 7
    PRINT
    INPUT " Une autre conversion (O/N) "; reponse$
    if reponse$<>"n" then goto 10
    0