SSブログ
English Version

ポケコン(PC-G850V)でGAME言語(その5)LifeGame [ポケコン]

 前回の「ポケコン(PC-G850V)でGAME言語(その4)GAME高速化」で書いたようにポケコン(PC-G850V)に移植したGAME言語のインタプリタの動作も速くなり、環境的には一段落したので定番のライフゲームを動かしてみました。

 グラフィックを使えば細かくできるでしょうが、GAMEコンパイラの動作確認の意味合いも込めてまずはキャラクタベースで動かしました。

 短い周期の定常パターンであれば検出したら乱数で新しい種パターンを自動生成するようにしていますが、LCD画面が狭いのでそのうちに長い周期の定常パターンになってしまいます・・・

 動作確認目的なのでソースは綺麗に整理してはいませんが下記の通りです。
 結果として今回ポケコンに移植したGAME言語のインタプリタ及びコンパイラで問題の検出はありませんでした。

PC-G850Vでライフゲーム(GAME言語)
1' Life Game V0.01 2020/01/19 by skyriver 10 X=20 Y=6 W=$102 >=$104 12 '=21583 M=0 20 Q=&+1 R=5 U=0 S=Q+R+1 CNT=X*Y+S 30 !=2000 100 @ 102 P=0 W(0)=$15 T=T+1 "Gen" 110 W(0)=$0114 ?(4)=T ;=T>M M=T 112 W(0)=$0315 "Max" 114 W(0)=$0414 ?(4)=M W(0)=0 120 B=0,Y-1 130 A=0,X-1 140 Z="." ;=S:X*B+A)<>0 Z=$87 P=P+1 !=1000 150 $=Z 160 @=A+1 170 / 180 @=B+1 200 I=0,X*Y-1 210 Z=CNT:I) CNT:I)=0 220 ;=(Z<2)+(Z>3) S:I)=0 230 ;=Z=3 S:I)=1 240 @=I+1 250 ;=(V>5)+(P=0) !=2000 V=0 #=300 260 !=3000 270 ;=P=H V=V+1 #=300 280 H=P V=0 300 @=(0) 1000' count up around cell 1010 E=B-1,B+1 1020 G=%((E+Y)/Y)*X 1030 D=A-1,A+1 1040 F=%((D+X)/X)+G 1050 CNT:F)=CNT:F)+1 1060 @=D+1+(E=B) 1070 @=E+1 1080 ] 2000' clear 2010 T=0 I=X*Y-1 @ S:I)=0 CNT:I)=0 I=I-1 @=(I<0) 2020 I=0,X*Y/10 2030 F=('X/2)+(X/4) B=('Y/2)+(Y/4) S:X*B+F)=1 2040 @=I+1 2050 ] 3000'check FixPattern P <- count 3010 Q:U)=P P=0 U=U+1 ;=U>R U=0 3020 I=0,R P=P+Q:I) @=I+1 3030 ]


 Twitterにポストした動画付きメッセージを貼っておきます。

★2020/01/20 追記 {
 尚、GAME言語のインタプリタやコンパイラ等は「ポケコン(PC-G850V)でGAME言語」からダウンロードできます。

 下記の動画では次の操作を行っています。
  1. GAMEソースのロード
     エミュレータなので一瞬で終了していますが、パソコン側にあるライフゲームのGAME言語のソースをシリアル通信でTEXTエディタ領域にロードする。
  2. TEXTエディタ内データの変換
     GAMEインタプリタを起動し、ロードしたTEXTエディタ内のソースデータを4E00Hに置いておいた変換ツールにより、GAME言語のソースに変換する(変換後のソースは0C00Hからにセーブ)
  3. 変換ソースの確認
     変換したソースをリスト表示して確認する。
  4. コンパイル
     変換したソースを3400Hに配置しておいたコンパイラでコンパイルする。
  5. 実行
     コンパイルしたオブジェクトを実行する。
}


[TOP] [ 前へ ] 連載記事 [ 次へ ]

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー