10 @INI:CLS:B=1 20FORX=0TO31:LCX,0:?CHR$(B);:LCX,21:?CHR$(B);:NEXT 30FORY=1TO20:LC0,Y:?CHR$(B);:LC32,Y:?CHR$(B);:NEXT 40FORI=0TO30:LCRND(30)+1,RND(20)+1:?CHR$(#2A):NEXT 50C=10:X=RND(30)+1:Y=RND(20)+1 60@WAIT:LCX,Y:?CHR$(#F9):WAIT20:LCX,Y:?CHR$(#FA):WAIT20:K=INKEY():IFK=0THENGOTO@WAIT 70@LOOP 80C=C-1:IFC<0:C=RND(10):LCRND(30)+1,RND(20)+1:?CHR$(#2A) 90K=INKEY() 100IFK!=0THENLCX,Y:?CHR$(0)ELSEC=0 110V=X:X=X-(K=28)+(K=29) 120W=Y:Y=Y-(K=30)+(K=31) 130S=SCR(X,Y):IFS=BTHENX=V:Y=W:C=0 140IFS<>#2ATHENLCX,Y:?CHR$(#F9):GOTO@LOOP 150@END 160LCX,Y:?CHR$(#F4):WAIT20 170LCX,Y:?CHR$(#2A):WAIT20 180K=INKEY():IFK=32THENGOTO@INI 190GOTO@END
なかなかに理不尽なゲーム(?)ですね。直撃はもうどうしようもない! 壁に当たったときの動きと、*に当たったときの動きがちゃんと違うものになっているので、当たり判定についての勉強になりそうです。