Se connecter avec
S'enregistrer | Connectez-vous

Probléme de BASIC

Dernière réponse : dans Programmation

lu, dabord la c'est pas RomainT2005 qui parle, c'est son frére, et je n'est que 10 ans, alors désolé pour les faute d'orthographes.

Voila, je vien de comencé le language BASIC, j'utilise le logi. Liberty BASIC v4.01.
Comme je commence, j'ai dabord voulu faire simple, mes j'ai un probléme dans mon programe, dabord, voila le code :

10 PRINT "Papier, Ciseau, Marteau"
20 PRINT "Papier, Ciseau, Marteau sont vos choix"
30 PRINT "Choisis l'un d'entre eux pour battre Romain"
40 PRINT "Le marteaux ecrase les ciseau. Les ciseau coupe le papier"
50 PRINT "Le papier evellope le marteau"
60 PRINT "Salut c'est romain, jouons emsemble"
70 PRINT "Choisissez une option"
80 PRINT "1-Papier"
90 PRINT "2-Ciseaux"
100 PRINT "3-Marteau"
110 INPUT PLAYER
120 COMPUTER=RND(3)
130 IF PLAYER=1 THEN PRINT "Vous avez le papier"
140 IF PLAYER=2 THEN PRINT "Vous avez les ciseau"
150 IF PLAYER=3 THEN PRINT "Vous avez le marteau"
160 IF COMPUTER=1 THEN PRINT "J'a le papier"
170 IF COMPUTER=2 THEN PRINT "J'ai les ciseau"
180 IF COMPUTER=3 THEN PRINT "J'ai le marteau"
190 IF PLAYER=COMPUTER THEN PRINT "EGALITé !!"
200 IF PLAYER=COMPUTER+1 THEN PRINT "Vous avez gagné !"
210 IF COMPUTER=PLAYER+1 THEN PRINT "J'ai gagné"
220 IF PLAYER=COMPUTER+2 THEN PRINT " J'ai gagné !"
240 IF COMPUTER=PLAYER+2 THEN PRINT "Vous avez gagné !"

Voyez vous des erreurs ?
car quand je lance le mini jeux, je tape par exemple "3" pour marteau, et rien ne se passe, il y a juste marquer, Vous avez choissi le marteau, apart ça, aucune réaction de la part de l'ordi, pourquoi ?

Autres pages sur : probleme basic

Lassé par la pub ? Créez un compte

je ne connais pas le basic mais :

quand tu utilises IF, évites les successions de if ; utilises aussi les else if (si ça existe)

ainsi, ça deviendrait :

if jour =1
else if joeur=2
else if joueur=3
else
print ("erreur joueur", joueur)

ainsi, le traitement est meilleur (pas d'impact sur un petit programme mais autant prendre des bonnes habitudes tout de suite

Ensuite, je doute que RND(3) renvoie 0,1,2,3

imprime sa valeur (comme le else, par exemple)

confirmation : rnd renvoie, comme beaucoup de langages, une valeur entre 0 et 1 ; fais un *10 puis la commande pour obtenir la valeur entiere (dans d'autres langages, c'est par exemple ROUND(....) )

Ainsi, si ça te donne 0.51345,
tu fais *10 => 5.1345
L'entier => 5

Dans ton programme, une fois que tu entre ton choix, le programme s'execute jusqu'au bout puis se ferme car tu ne le stoppe pas pour afficher le resultat.(j'ai ajouté une etiquette [boucle] comme ça, à la fin du prog il revient demander une autre partie)
il y a une erreur a ta ligne qui prends un nombre aléatoire pour l'ordinateur. (je l'ai corrigé)

voici ton code corrigé :

  1. PRINT "Papier, Ciseau, Marteau"
  2. PRINT "Papier, Ciseau, Marteau sont vos choix"
  3. PRINT "Choisis l'un d'entre eux pour battre Romain"
  4. PRINT "Le marteaux ecrase les ciseau. Les ciseau coupe le papier"
  5. PRINT "Le papier evellope le marteau"
  6. PRINT "Salut c'est romain, jouons emsemble"
  7. [boucle]
  8. PRINT "Choisissez une option"
  9. PRINT "1-Papier"
  10. PRINT "2-Ciseaux"
  11. PRINT "3-Marteau"
  12. INPUT PLAYER
  13. COMPUTER=int(RND(1)*3)+1
  14. IF PLAYER=1 THEN PRINT "Vous avez le papier"
  15. IF PLAYER=2 THEN PRINT "Vous avez les ciseau"
  16. IF PLAYER=3 THEN PRINT "Vous avez le marteau"
  17. IF COMPUTER=1 THEN PRINT "J'a le papier"
  18. IF COMPUTER=2 THEN PRINT "J'ai les ciseau"
  19. IF COMPUTER=3 THEN PRINT "J'ai le marteau"
  20. IF PLAYER=COMPUTER THEN PRINT "EGALITé !!"
  21. IF PLAYER=COMPUTER+1 THEN PRINT "Vous avez gagné !"
  22. IF COMPUTER=PLAYER+1 THEN PRINT "J'ai gagné"
  23. IF PLAYER=COMPUTER+2 THEN PRINT " J'ai gagné !"
  24. IF COMPUTER=PLAYER+2 THEN PRINT "Vous avez gagné !"
  25. goto [boucle]


Ensuite tu peux eviter de mettre tous ces "IF .... THEN ...."
pour eviter cela tu peux utiliser l'instruction "SELECT CASE"
voici le code avec cette instruction.

  1. PRINT "Papier, Ciseau, Marteau"
  2. PRINT "Papier, Ciseau, Marteau sont vos choix"
  3. PRINT "Choisis l'un d'entre eux pour battre Romain"
  4. PRINT "Le marteaux ecrase les ciseau. Les ciseau coupe le papier"
  5. PRINT "Le papier evellope le marteau"
  6. PRINT "Salut c'est romain, jouons emsemble"
  7. [boucle]
  8. PRINT "Choisissez une option"
  9. PRINT "1-Papier"
  10. PRINT "2-Ciseaux"
  11. PRINT "3-Marteau"
  12. INPUT PLAYER
  13. COMPUTER=int(RND(1)*3)+1
  14. select case PLAYER
  15. CASE 1
  16. PRINT "Vous avez le papier"
  17. CASE 2
  18. PRINT "Vous avez les ciseau"
  19. CASE 3
  20. PRINT "Vous avez le marteau"
  21. end select
  22. select case COMPUTER
  23. CASE 1
  24. PRINT "J'a le papier"
  25. CASE 2
  26. PRINT "J'ai les ciseau"
  27. CASE 3
  28. PRINT "J'ai le marteau"
  29. end select
  30. resultat=COMPUTER-PLAYER
  31. select case resultat
  32. CASE 0
  33. PRINT "EGALITé !!"
  34. CASE 1
  35. PRINT "J'ai gagné"
  36. CASE ELSE
  37. PRINT "Vous avez gagné !"
  38. end select
  39. goto [boucle]


Et encore bravo pour ce premier programme !

@++

jsuis exactement dans le même cas que celui qui a envoyer le message, jsuis débutante et j'ai voulu essayer de commencer par ce petit prog qui apprend pas mal de chose et j'ai rencontrer le même probème à propos de la ligne COMPUTER=(RND3) j'ai changer en int(RND(1)*3)+1 et ca marche!! merci !! cependant j'ai bien compris que le 3 était le marteau et que donc l'ordinateur prend tjrs le marteau!!on peut donc changer le 3 en ou1 mais bon c'est pas très marrant, j'y connais vraiment rien masi yorait-il une solution pour que ce soit au hasard enfin que ca change, jpense que oui mais ca doit etre assez compliqué...
j'ai essayé GOTO[boucle] à la fin mais ca macrhe pas, le programme ne veut pas s'éxécuter, ai-je fait une erreur?? merci de votre aide!!
Lassé par la pub ? Créez un compte
Tom's guide dans le monde