パックマンっぽい表示デモ2

前回作ったパックマンっぽいゲームを改良して、モンスターを追加してみました。
全部で1796バイトです。あと200バイトくらいしか残ってません。
http://nicotak.com/nicobasic/edu2/pacpac2.gif

DIM D(20):DIM M(14):DIM T(4)
DIM X1(4):DIM Y1(4)
X1(0)=0:Y1(0)=-1
X1(1)=1:Y1(1)=0
X1(2)=0:Y1(2)=1
X1(3)=-1:Y1(3)=0
D(0)=&B1001
D(1)=&B1001
D(2)=&B1111
D(3)=&B0110
D(4)=&B0111
D(5)=&B1100
D(6)=&B1100
D(7)=&B0111
D(8)=&B0110
D(9)=&B1111
D(10)=&B1001
D(11)=&B1001
D(12)=&B1010
D(13)=&B0011
D(14)=&B0011
D(15)=&B1110
D(16)=&B0110
D(17)=&B1111
D(18)=&B1111
D(19)=&B0110
FOR I=0 TO 15
D(I)=D(I)<<12
NEXT
M( 0)= &B111111111111111
M( 1)= &B100000000000001
M( 2)= &B101111101111101
M( 3)= &B101000000000101
M( 4)= &B101011111110101
M( 5)= &B101010000000001
M( 6)= &B100010111010101
M( 7)= &B100000000010101
M( 8)= &B101011111110101
M( 9)= &B101000000000101
M(10)= &B101111101111101
M(11)= &B100000000000001
M(12)= &B111111111111111
M(13)=0
T(0)=&B0110<<12
T(1)=&B1001<<12
T(2)=&B1001<<12
T(3)=&B1111<<12
*START
CLS
FOR J=0 TO 12 STEP 2
FOR I=0 TO 14 STEP 2
X=I/2*5
Y=J/2*5
IF &H4000>>I AND M(J+1) THEN
LINE X,Y,X,Y+5,1
ENDIF
IF &H2000>>I AND M(J) THEN
LINE X,Y,X+5,Y,1
ENDIF
NEXT
NEXT
DT=0
FOR J=0 TO 5
FOR I=0 TO 6
PSET I*5+2,J*5+2,1
DT=DT+1
NEXT
NEXT
X=16:Y=1:H=3:BITMAP D(H*4),X,Y,4,2
W=16:V=26:H2=2:BITMAP T,W,V,4,2
C=0:B=0
WHILE DT
BITMAP D(H*4),X,Y,4,2
IF C THEN
	X=X+X1(H):Y=Y+Y1(H)
	C=C-1
ELSE
	I=X+1:J=Y+1
	IF POINT(I,J) THEN DT=DT-1:PSET I,J,0
	IF SW=0 THEN
		K=H
	ELSE
		IF SW AND 1 THEN K=0
		IF SW AND 8 THEN K=1
		IF SW AND 2 THEN K=2
		IF SW AND 4 THEN K=3
	ENDIF
	I=X:J=Y
	GOSUB *KABECK
	IF KABE=0 THEN H=K:C=5
ENDIF
BITMAP D(H*4),X,Y,4,2
IF B THEN
	BITMAP T,W,V,4,2
	W=W+X1(H2):V=V+Y1(H2)
	BITMAP T,W,V,4,2
	B=B-1
ELSE
	K=H2:I=W:J=V
	IF RND % 4 THEN
		IF RND % 2 THEN
			K=1:IF W>X THEN K=3
		ELSE
			K=2:IF V>Y THEN K=0
		ENDIF
	ELSE
		IF RND % 2 THEN K=RND % 4
	ENDIF
	GOSUB *KABECK
	IF KABE=0 THEN H2=K:B=5
ENDIF
REM
WEND
FOR I=0 TO 3000
NEXT
GOTO *START
*KABECK
J=J/5*2+1+Y1(K)
I=I/5*2+1+X1(K)
KABE= &H4000 >> I AND M(J)
RETURN

BITMAPの新機能を使ってます。

まだモンスターの当たり判定はありません。