1

salut j'aimerai faire un bomberman sur ti83+ mais je n'arrive pas à placer la bombe sur ma derniere postion je fait

Output(x+,y,"b")
mais ca pose des problemes de domain
quelqu'un peut m'aider

2

Output(x+,y,"b")

x+ ?
[nosmile]
Si c'est une ERRgrinOMAIN, c'est certainement parce-que tu essayes d'afficher un point hors de l'écran.
L'ordonnée doit varier entre 1 et 8, et l'abscisse entre 1 et 16.

3

j'affiche la bombe au dessus de la position de mon perso et j'aimerais qu'il l'affiche sur la case d'ou je viens je vis t'écrire le programme

4

Tu pourrais recopier le code en entier ? Ce serait plus simple pour cerner le problème smile

5

:Lbl A
:ClrHome
:1→X
:1→Y
:1→A
:1→B
:3→V
:
:Lbl 1
:Repeat K=105
:getKey→K
:Y+(K=34)-(K=25)→Y
:X+(K=26)-(K=24)→X
:If X=0:1→X
:If K=1:16→X
:If Y=0:1→Y
:If Y=7:6→Y
:Output(7,1,"----------------
:Output(8,2,"/3
:Output(8,1,V
:Output(B,A," 
:Output(Y,X,"0
:X→A
:Y→B
:If K=21
:Goto 2
:If V=0
:Then
:Output(8,7,"perdu!
:Pause 
:Goto A
:End
:End
:Goto 3
:
:Lbl 2
:Y→C
:X→D
:For(I,1,10
:getKey→K
:Output(C,D,"B
:X+(K=26)-(K=24)→X
:Y+(K=34)+(K=25)→Y
:If X=0:1→X
:If X=17:16→X
:If Y=0:1→Y
:If Y=7:6→Y
:Output(B,A," "
:X→A
:Y→B
:Output(Y,X,"0
:End
:
:For(I,1,10)
:Output(C,D-3,"---+---
:Output(C+2,D,"!
:Output(C+1,D,"!
:Output(C-1,D,"!
:Output(C-2,D,"!
:Output(8,7,"boum!
:End
:
:If Y=C and X=D or Y=C-1 and X=D
:V-1→V
:Output(C,D-3," "
:Output(C+2,D," "
:Output(C+1,D," "
:Output(C-1,D," "
:Output(C-2,D," "
:Output(8,7," "
:Goto 1
:Lbl 3
:ClrHome
:Output(1,1," "

6

[doublon]

7

dsl j'en ai posté 2
en fait mon problème est que lorsque le bombe explose près des murs j'ai droit à une error domain et je vois pas comment les régler

8

(J'ai édité ton message pour rendre le code source plus lisible.)

Le problème c'est que t'essayes d'afficher l'explosion en dehors de l'écran. Ce qu'il faut faire, je pense, c'est de gérer la propagation du feu de son centre vers l'extérieur. J'vais essayer de te proposer un code si j'ai le temps smile

9

J'ai pas encore eu le temps de bien y regarder, mais à mon avis le plus simple c'est de faire avec une matrice...

10

Tu peux juste donner les grandes lignes de ton prog ? (histoire de comprendre la structure)

11

[nosmile]Y'a des trucs bizarre dans ce programme...
En haut, c'est pas K, c'est X la variable (au 2è if)

Et puis le deuxième For, il ne sert à rien puisque tu ne modifie aucune des variables que tu utilises...

darkovao31 (./5) :
:For(I,1,10)
:Output(C,D-3,"---+--- :Output(C+2,D,"!
:Output(C+1,D,"! :Output(C-1,D,"!
:Output(C-2,D,"! :Output(8,7,"boum! :End

Tu peux remplacer ça par:
:0->I:
:while C-I > 0 and C+I<8 and D-I > 0 and D+I < 16 
:output(C-I, D, "!"
...
:output(C, D+I, "-"
:End


12

Ça doit être une erreur de frappe le K au lieu du X.

Puis le 'For(', c'est pas plutôt pour mettre en pause le programme, le temps d'afficher l'explosion ? C'est difficile de proposer autre chose vu qu'en TI-Basic y'a rien de 'propre' pour faire ça (certains utilisent '69!' mais c'est moche).

13

69! c'est pas assez sur une TI-z80 à 6 MHz pour ralentir une boucle ou quoique ce soit, encore moins sur une 15 MHz. J'aime mieux utiliser Rand, en plus, tu sauve 3 octets.

Malgré que 69... cheeky

Anyway en BASIC vu la lenteur et la taille des programmes, il n'y a pas vraiment de règles à respecter en terme d'esthétisme pour le code. Chaque octet compte.

14

N'empêche que le code que je propose à la place du For ne plante pas. Y'a moyen de l'optimiser plus, mais bon, j'ai fait ça à l'arrache...

15

ah oui le k c'est une erreur de frappe et la boucle for c'est pour voir l'explosin mais ta technique n'est pas mal