====== Ichigo Fields ====== ===== 概要 ===== フルーツフィールドをIchigoJamで再現してみました。 但しメモリーが足りないので1ステージのみ実装しています。 {{::ichigofields:ichigofields.png?600 |IchigoFields}} ===== プログラム ===== 1 CLS:CLV:CLP:W=~0:LET[0],W,W,W,W,W,W,W,W,W,W,W,W,#FFF,0,#E00,#F000,0,W,W,#543F,#152,0,0,#F050,W,W,W,#534F,W,W,W,W,W,W,W,W,W,W,W,W 2 FORX=0TO17:LCX,0:?CHR$(3):LCX,11:?CHR$(3):NEXT:FORY=1TO10:LC0,Y:?CHR$(3):LC17,Y:?CHR$(3):NEXT 3 X=0:Y=0:FORA=0TO9:FORB=0TO3:M=[A*4+B]:FORZ=0TO3:C=M>>(Z*4)&15:LC1+B*4+Z,1+A:?CHR$(!!C*(223+C-(C=15)*235+(C=5)*27)):R=R+(C=5):C=C-14:X=!C*(1+B*4+Z)+!!C*X:Y=!C*(1+A)+!!C*Y:NEXT:NEXT:NEXT 4 GSB9:LCX,Y:?CHR$(237):IF!RENDELSEK=INKEY():IF!KCONTELSEIFK=32BEEP:GOTO5ELSEH=(K=29)-(K=28):V=(K=31)-(K=30):LCX,Y:?CHR$(0):X=X+H:Y=Y+V:F=SCR(X,Y):IFF&&F<>255X=X-H:Y=Y-V:CONTELSEBEEP:R=R-(F=255):CONT 5 P=X+H:Q=Y+V:F=SCR(P,Q):IFF&~3<>224GOTO4 6 G=F&3:L=(G=1)-!G:W=(G=3)-(G=2):D=SCR(P+L,Q+W):C=!G*(H=-1)+(G=1)*(H=1)+(G=2)*(V=-1)+(G=3)*(V=1):IFABS(F-D)*(F&2=D&2)*C=1GOTO4 7 IFDIFCBEEP:LCP,Q:?CHR$(0):GOTO4ELSEGOTO4 8 LCP,Q:?CHR$(0):P=P+L:Q=Q+W:D=SCR(P+L,Q+W):IFDLCP,Q:?CHR$(F):GOTO4ELSECONT 9 LC0,12:?"ICHIGO FIELDS.":?"LEFT FRUITS ";R;". PHASE ";N+1;".":RTN ===== 解説 ===== マップデータは1行目で定義しています。 ''[0]~[39]''に1ニブル(4bit)をひとます分として定義してあります。 値と対応するキャラクターは下表のようになっています。 [[IchigoJam]]のコードを短くするために[[フルーツフィールド for PC-6001mkII]]とは違っています。 一緒にすればコピペでマップを持ち込めたんですけれどねえ。 ^値^キャラクター^ |0|空白| |1|←| |2|→| |3|↑| |4|↓| |5|イチゴ| |14|REMくん| |15|壁| マップデータこそ一面分しかありませんが、ゲームのロジックはすべて実装されていますので、そう考えると、[[IchigoJam]]もなかなかのものじゃないかと思います。