Je tourne en rond ! je comprend pas pourquoi ça fonctionne pas !
sujet : stocker la valeur (16bits) la plus petite des (DG_UP, DG_RIGHT, DG_DOWN, DG_LEFT) à l'adresse $blinky_G_smaller_dist, puis $pinky_G_smaller_dist
(le principe de trouver la plus petite valeur fonctionne, pas de soucis)
problème : sauvegarder la valeur 16bits à l'adresse $blinky_G_smaller_dist puis $pinky_G_smaller_dist
donc je réserve les adresses
Code:
DG_UP RMB 2 ;* carreX + carreY up (DiSTAnce Ghost/Player). va contenir une valeur 16bits
DG_RIGHT RMB 2 ;* carreX + carreY right (DiSTAnce Ghost/Player). va contenir une valeur 16bits
DG_DOWN RMB 2 ;* carreX + carreY down (DiSTAnce Ghost/Player). va contenir une valeur 16bits
DG_LEFT RMB 2 ;* carreX + carreY left (DiSTAnce Ghost/Player). va contenir une valeur 16bits
blinky_G_smaller_dist RMB 2 ; adresse($9811 $9812) qui va contenir la valeur 16bits de blinky
pinky_G_smaller_dist RMB 2 ; adresse($981B $981C) qui va contenir la valeur 16bits de pinky
ghost_G_smaller_dist RMB 2 ; adresse($9807 $9808) qui va pointé sur blinky_G_smaller_dist ou pinky_G_smaller_dist
je définie l'emplacement de ghost_G_smaller_dist pour y stocker la valeur 16bits dedans plutard !
Code:
LDD #blinky_G_smaller_dist <--- là D=$9811 (donc A=$98 et B=$11)
STD ghost_G_smaller_dist <--- donc ici ghost_G_smaller_dist pointe $9811
1 - trouver la plus petite entre ces 4 valeur 16bit (DG_UP, DG_RIGHT, DG_DOWN, DG_LEFT) (on va dire que c'est déjà calculé !)
2 - puis la stocker dans ghost_G_smaller_dist (qui sera donc l'adresse blinky_G_smaller_dist)
Code:
LDD DG_UP
CMPD DG_RIGHT
BLO smaller1a
LDD DG_RIGHT
smaller1a STD ghost_G_smaller_dist <--- ici je stock bien la valeur qui est en(DG_UP ou DG_RIGHT) dans $9811 $9812 ??
LDD ghost_G_smaller_dist
CMPD DG_DOWN
BLO smaller2a
LDD DG_DOWN
smaller2a STD ghost_G_smaller_dist
LDD ghost_G_smaller_dist
CMPD DG_LEFT
BLO smaller3a
LDD DG_LEFT
smaller3a STD ghost_G_smaller_dist
donc ici je devrais avoir la plus petite valeur qui sera contenu dans ghost_G_smaller_dist donc au adresse $9811 $9812 donc en blinky_G_smaller_dist ??
- le but est de faire varier l'adresse ghost_G_smaller_dist à chaque boucle (ici 2 boucles) pour stocker 2 valeurs 16bits différentes (pour mettre à jour les valeurs qui sont en blinky_G_smaller_dist puis pinky_G_smaller_dist).
-Pour qu'au final je définissent la direction à prendre en faite.
-Donc [ ghost_G_smaller_dist est blinky_G_smaller_dist ] puis [ ghost_G_smaller_dist est pinky_G_smaller_dist ] (puis on loop)
Code:
LDD DG_UP
CMPD ghost_G_smaller_dist
BEQ ghost_move_up
LDD DG_RIGHT
CMPD ghost_G_smaller_dist
BEQ ghost_move_right
LDD DG_DOWN
CMPD ghost_G_smaller_dist
BEQ ghost_move_down
LDD DG_LEFT
CMPD ghost_G_smaller_dist
BEQ ghost_move_left
Désoler si c'est le bordel, pas évident d'expliquer !
merci