ACLS:CLEAR:SYSBEEP=0
BGMSTOP:TALKSTOP
@LOOP
VSYNC 1
LOCATE X,Y:?"↑"
B=BUTTON()
IF B AND 1 THEN Y=Y-1
IF B AND 2 THEN Y-Y+1
IF B AND 4 THEN X=X-1
IF B AND 8 THEN X=X+1
IF X<0 THEN X=0
IF X>31 THEN X=31
IF Y<0 THEN Y=0
IF Y>23 THEN Y=23
LOCATE X,Y:?"↑"
GOTO @LOOP
>>331
ご指摘ありがとうございます。
ACLS:CLEAR:SYSBEEP=0
BGMSTOP:TALKSTOP
@LOOP
VSYNC 1
LOCATE X,Y:?" "
B=BUTTON()
IF B AND 1 THEN Y=Y-1
IF B AND 2 THEN Y-Y+1
IF B AND 4 THEN X=X-1
IF B AND 8 THEN X=X+1
IF X<0 THEN X=0
IF X>31 THEN X=31
IF Y<0 THEN Y=0
IF Y>23 THEN Y=23
LOCATE X,Y:?"↑"
GOTO @LOOP
@LOOP
VSYNC 1:GCLS
B=BUTTON()
IF B AND 1 THEN Y=Y-1
IF B AND 2 THEN Y=Y+1
IF B AND 4 THEN X=X-1
IF B AND 8 THEN X=X+1
SPHOME 0,-X,-Y
SPOFS 0,X,Y;16
GOTO @LOOP
>>352
WAIT 1
PB=BUTTON()
IF (PB AND 1) AND ATU!=1 THEN PY=PY-1:PMUKI=30
IF (PB AND 2) AND ATS!=1 THEN PY=PY+1:PMUKI=26
IF (PB AND 4) AND ATH!=1 THEN PX=PX-1:PMUKI=28
IF (PB AND 8) AND ATM!=1 THEN PX=PX+1:PMUKI=24
S=S+1
IF S>10 THEN PMUKI=PMUKI+1
IF S==20 THEN S=0
SPSET 0,PMUKI,2,0,0,2,16,16
SPOFS 0,PX,PY
PMUKI=PMUKI-PMUKI%2
ATU=0:ATS=0:ATH=0:ATM=0:ATAI=0
FOR ATAY=0 TO 2
FOR ATAX=0 TO 2
IF ATAX==0 AND ATAY==0 THEN @ATASK
IF ATAX==2 AND ATAY==2 THEN @ATASK
IF ATAX==2 AND ATAY==0 THEN @ATASK
IF ATAX==0 AND ATAY==2 THEN @ATASK
IF ATAX==1 AND ATAY==1 THEN @ATASK
ATAI=ATAI+1
PATX(ATAI)=FLOOR(PX/8)+ATAX
PATY(ATAI)=FLOOR(PY/8)+ATAY
BGREAD(1,PATX(ATAI),PATY(ATAI)),CHR(ATAI),PAL,H,V
IF CHR(1)!=72 AND CHR(1)!=73 AND CHR(1)!=105 AND CHR(1)!=104 THEN ATU=1
IF CHR(2)!=72 AND CHR(2)!=73 AND CHR(2)!=105 AND CHR(2)!=104 THEN ATH=1
IF CHR(3)!=72 AND CHR(3)!=73 AND CHR(3)!=105 AND CHR(3)!=104 THEN ATM=1
IF CHR(4)!=72 AND CHR(4)!=73 AND CHR(4)!=105 AND CHR(4)!=104 THEN ATS=1
@ATASK
NEXT ATAX
NEXT ATAY