ユーザ用ツール

サイト用ツール


ichigofields

Ichigo Fields

概要

フルーツフィールドをIchigoJamで再現してみました。 但しメモリーが足りないので1ステージのみ実装しています。

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イチゴ
14REMくん
15

マップデータこそ一面分しかありませんが、ゲームのロジックはすべて実装されていますので、そう考えると、IchigoJamもなかなかのものじゃないかと思います。

ichigofields.txt · 最終更新: 2020/11/25 14:14 by araki