ライフゲーム

アドイン版 Casio Basic 用サンプルプログラム
<トップページ>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

動画・説明追加 2015/11/15
更新 2016/05/02
プログラムアップデート 2021/06/13
記事の大幅な追記修正 2021/06/20
超お勧めライフゲームの動画を追加 2021/06/24
ライフゲーム マイナーアップデート 2021/06/26
全プリセットパターンの動画を収録 2021/06/26
プログラムダウンロードリンク修正 2021/07/12

[2015/11/16] プリセットした初期パターンを選べるようにバージョンアップ
[2015/11/17] 記事を大幅に追加して更新
[2015/11/20] C.Basic Ver 0.73 へのバージョンアップを反映した更新
[2016/02/11] C.Basic 最新版は アドイン Casio Basic - トップページ の最新バージョンから
[2016/05/02] ライフゲーム Ver 0.74 へアップテート(C.Basic Ver0.99m に対応) 
[2021/06/13] ライフゲーム Ver 2.45 / Ver 2.45F へアップデート
        (C.Basic for FX Ver2.45 build20、C.Basic for CG Ver 1.45 build20 に対応) 

[2021/06/26] ライフゲーム Ver 2.45 / Ver 2.45F をマイナーアップデート



カシオのグラフ関数電卓で、そこそこ遊べるライフゲームができました...
とは言っても、純正 Casio Basic では無理なので、アドイン版 Casio Basic : C.Basic で作りました。

まず最初に、ライフゲームを知らなかった方や知っていた方にも楽しんで頂けると思う最高の動画を紹介します;
 ライフゲームの世界1~9 複雑系コミュニティ動画 by はむくん

電卓で走るライフゲームを始めて作って、このページで紹介したのは 2015年に遡り、2017年にアップデートしています。その後 C.Basic はアップデートを続けることで、機能を充実させつつ完成度が上がってきたので、それに合わせてライフゲームをアップデートします。今回のアップデートでは、基本的なロジックは変えておらず、幾つかのバグ取りとチョットした新機能追加を行っています。

カシオのグラフ関数電卓でしっかりと動作するライフゲームは他では見ないと思います (TIやhpのモデルで走るライフゲームはネットで検索すると出てきますが...)。以下に実際の動作の動画を複数掲載していますので、そこで C.Basic の能力を実感できると思います。

お持ちのグラフ関数電卓で、是非とも実際にライフゲームを楽しんで頂きたいと思います。


目 次

 ライフゲームのルール 
 プログラム電卓でライフゲーム
  ライフゲーム作成の経緯
  ライフゲームで遊ぶための準備
    アドイン版 Casio Basic: C.Basic for FX
    アドイン版 Casio Basic: C.Basic for CG
    チューンアップツール (アドインプログラム)
    ライフゲームのプログラムファイル
  ライフゲームの遊び方 (プリセットパターンの実行動画あり)
 プログラムのロジックについて 
 各モデルでの処理速度 (実行動画あり)
 ライフゲームに関するサイト



ライフゲームのルール

ライフゲームは 1970年に数学者 Conway が発表したのが始まりで、英語では Conway's Game of Life と呼ばれます。

画面の1ピクセルを1個の細胞 (セル - Cell)と見立て、誕生、生存、死滅を繰り返す細胞集団の変化(世代変化)を画面上で再現して、眺めて楽しみます。
ピクセル1個 = 細胞1個は、 (On:生きている) (Off:死んでいる) のどちらかの状態になります。そして以下の単純な3つの条件だけで次の世代の細胞の生死、つまりピクセルの On / Off  が決定されます。

<誕生>
周りに生きている細胞が3個あれば、次の世代でその場所に新たな細胞が生まれます。
つまり、 あるピクセルが Off で、周りの8 個のピクセルのうち3個が On の場合、
Birth 
そのピクセルは次の世代で On になります。

<生存>
生きている細胞の周りに生きている細胞が2個か3個あれは、その細胞は次の世代でも生き残ります。
つまり、あるピクセルが On で、周りの8個のピクセルのうち2個か3個が On の場合、
Live1 LIVE_2 
そのピクセルは次の世代では On のままになります。

<死滅>
上以外の場合、細胞は次の世代で死にます。
つまり、あるピクセルが On で、周りの8 個のピクセルが1個以下(過疎)、
Death6  Death7 
あるいは4個以上(過密)の場合、
Death1  Death2  Death3  Death4  Death5 
そのピクセルは次の世代で Off になります。

このルールに従って、画面全てのピクセルについて計算すると全体が1世代進みます。

世代が進むと、複雑なパターンに進化したり、死滅したり、一定パターンに落ち着くこともあります。ピクセル一個の生死が3つの単純なルールに従うだけなのに、実際に動かしてみると予想もしないパターンに進化するのが、ライフゲームの面白いところです。

<目次に戻る>



プログラム電卓でライフゲーム
ライフゲーム・プログラムは、アドイン版 Casio Basic - C.Basic で作成し、純正Casio Basic にない拡張機能を使っているので、C.Basic のインストールが必要です。さらに、チューンアップツールで実行速度を上げると良いかもしれません。

 ▶ 必須 - アドイン版Casio Basic - C.Basic
 ▶ 必須 - ライフゲーム プログラム - LIFE245高速化バージョンLIFE245F
 ▶ 有ると良いかも - チューンアップツール (アドイン) 

LIFE245FC.Basic だけでも楽しめると思います。


ライフゲーム作成の経緯
ライフゲームを作るとしたら、画面全体のビットマップパターンを2次元配列 (行列) に対応させて計算するのが単純で分かりやすい方法でしょう。カシオのグラフ関数電卓の画面全体のピクセルを扱うには 63×127行列が必要ですが、 純正Casio Basic の行列は最大 99行99列なので、画面全体のビットマップパターンを処理できそうにありません。さらにグラフィックス画面を頻繁に更新する処理は 純正Casio Basic では非常に長い時間を要します。従って、グラフ関数電卓の 純正Casio Basic でライフゲームを作るのは極めて不向きで、現実的ではありません。

ところが アドイン版 Casio Basic -  C.Basic の開発が始まり、実際に色々なプログラムを作ってみると、計算は速く、グラフィックス画面への描画動作も速く、画面全体のピットマップを2次元配列で比較的高速に処理できるようになったので、C.Basic のベンチマークの目的も兼ねて、ライフゲームを作ってみました。

PCで動作する多くのライフゲームは広い画面を使うものがあり、メモリが許す限りの十分に広い世界を用意しているものがあります。一方、今回は 127 ピクセル × 63 ピクセル に限定された狭い世界でのライフゲームを作ってみます。電卓でのグラフィックス画面の更新は比較的時間がかかるので、本プログラムでは更新するビットマップ領域(行列のサイズ)を必要最小限にして高速化する工夫をしているため、画面全体の2ピクセルの内側にある 123×59画面 ピクセルの領域をパターンが超えようとするときは、本来のルール通りに動作しません。

本ライフゲームは、アドイン版 Casio Basic - C.Basic の能力確認 (ベンチマーク) も目的です。最初はモノクロ液晶搭載のグラフ関数電卓 fx-9860GII にインストールした C.Basic for FX  Ver 0.66 で作り始め、C.Basic for FX Ver 0.73 で仕上げて、それ以降のアップデートの際に動作確認しています。C.Basic for FX Ver 0.99m 以降に合わせて ライフゲームを Ver 0.74 にアップデート。その後 DotP() 関数が DotPut() に変更されたこともあり、さらに C.Basic for FX が Ver 2.45 までアップデートされたのに合わせて、ライフゲームをアップデートしました。 

一方で、高精細カラー液晶画面を搭載した CG モデル (fx-CG20fx-CG50) に対応した C.Basic for CG  の開発も始まり、これら CGモデルでも C.Basic が使えるようになりました。C.Basic for CG で扱うプログラムファイルは g3m ファイルですが、g1m ファイルも FX モデルと同じように動作するようになっています。従って、FXモデル用に作ったライフゲーム (g1mファイル) は、CGモデル (fx-CG20fx-CG50) でも動作します。


ライフゲームで遊ぶための準備
ここで紹介するライフゲーム・プログラムは、C.Basic for FX や C.Basic for CG をインストールして、C.Basic で実行してください。さらに下記で紹介するチューンアップツールを導入すると電卓自体の演算速度を高速化できるので、ライフゲームをさらに高速化できます。

C.Basic for FXC.Basic for CG は以下に紹介するモデルで動作します。 チューンアップツールはモデルごとに適用されている正しいバージョンを使ってください。詳しくは以下に紹介します。

FXモデル:モノクロ液晶を搭載した下記グラフ関数電卓
 ・fx-9860G / SD / Slim
 ・fx-9860GII / SD
 ・fx-9860GIII
 ・fx-9750GIII


CGモデル:高精細カラー液晶を搭載した下記グラフ関数電卓
 fx-CG10 / fx-CG20
 fx-CG50


 アドイン版 Casio Basic: C.Basic for FX
※ 最新バージョン Ver 2.45 build 20 以降のダウンロード: アドイン Casio Basic - トップページ
 ZIPファイルで提供
 ソースファイル(C言語)を公開
 ZIPファイル内にある CBASIC.G1A がアドインプログラム本体


アドイン版 Casio Basic: C.Basic for CG 
fx-CG20 / fx-CG50 (CGモデル) 用 C.Basic for CG でも g1m ファイルを実行すると、FXモデルで実行するのと同様な出力になるので、 g1m ファイルのライフゲームで遊べます。但し、以下の2つの設定を行ってください。

※ 最新バージョン Ver 1.45 build 20 以降のダウンロード: アドイン Casio Basic - トップページ
 ZIPファイルで提供
 ソースファイル(C言語)を公開
 ZIPファイル内にある CBCG145.G3A がアドインプログラム本体

※ ライフゲームプログラムの g1m ファイルを編集する場合、下記設定をしないと g3m ファイル
  として保存されてしまいます。
 g1mファイルとして保存するための設定
  C.Basic for CG を起動
  [SHIFT][MENU] で設定画面表示
  設定画面にある項目 Force g1m save on にする
   Set_SavingAsG1M

 CGモデルで g1m ファイルを保存する時の操作
  プログラム編集画面で [EXIT]キーを押して ファイルリスト画面に戻る前に
   SaveAsG1M
   と表示され、一番下のシフトキーメニューの [F2] に g1m、[F3] に g3m と表示されている。
  ここで [F2] (g1m) を押してから [EXE] キーを押すと g1m ファイル として 保存される。


 チューンアップツール(アドインプログラム)
より高速でスムーズな動きを楽しむには、オーバークロックによるチューンアップツールの使用を勧めます。

fx-9860G / fx-9860GII USB GRAPHIC モデル (SH3搭載) シリーズ向け Ftune の導入
fx-9860GII USB GRAPHIC 2 モデル (SH4搭載) シリーズ向け Ftune2 の導入
fx-9860GIII / fx-9750GIII / GRAPH35++EII 向け Ftune3 の導入
fx-CG10 / fx-CG20 向け Ptune2 の導入
fx-CG50 向け Ptune3 の導入

チューンアップツールを起動したら、プリセットされている [F5] を押して設定すると、安全なチューンアップで高速化できます。[F1] を押すと電卓本来の設定に戻ります。これ以上のチューンアップもできる可能性がありますが、自己責任でお願いします。


 ライフゲームのプログラムファイル
   ライフゲーム Ver 2.45 
   ※ 手動パターン入力時、[EXE]を1回押してもドットが表示されないバグを修正 [2021/06/16]
   
※ パターン作成画面で[EXIT]キーで最初のメニューに戻るよう修正 [2021/06/24]
   
※ パターン作成画面での操作説明表示を 125 dot x 61 dot の範囲内に収める [2021/06/26] 
   ・チューンアップツール
で [F5] を押して得られる設定を推奨
   初期パターンは、手入力だけでなくプリセットした16個の初期設定から選択可能

電卓表示のの狭い世界でも、パターンが変化する様子は面白くて飽きません。純正Casio Basic ではライフゲームは無理ですが、C.Basic で実現しました。


   ライフゲーム Ver 2.45F (高速化バージョン)
   ※ 手動パターン入力時、[EXE]を1回押してもドットが表示されないバグを修正 [2021/06/16]
   
※ パターン作成画面で[EXIT]キーで最初のメニューに戻るよう修正 [2021/06/26]
   
※ パターン作成画面での操作説明表示を 125 dot x 61 dot の範囲内に収める [2021/06/26]
   ・チューンアップツール
 が無くても高速に動作
   ・チューンアップツール で [F5] を押して得られる設定で使うとさらに高速化
   Ver. 2.45 のパターン更新処理をまとめて1つの関数にすることで、高速化したものです。



ライフゲームの遊び方
  ・C.Basic で LIFE245 か LIFE245F を起動

  ・メニューで [F1] (手入力) か [F6] (16個のプリセットから選択) かのどちらかを選ぶ
   Manual_1_1st_Menu

  [F1] 手入力の場合 - FXモデルでの画面例
  ・操作方法の説明を表示 
   Manual_2_OpGuide
   - [F1] で次に進む

  ・パターン作成画面になる
   ManuL_3_Input_Screen_new

  ・[EXE]キーを押すと十字カーソルが現れる
   ManuL_4_Input_1st_Cursor_Pos_new
   矢印キーでカーソルを上下左右に移動させ、[EXE]キーを押せばその位置のピクセルがONになる
   カーソルの座標 X, Y の座標値が表示される

  ・[EXE] ⇒ カーソル移動 ⇒ [EXE] を繰り返してパターンを作成
   Manual_6_Gen0_Pattern_new Manual_Pattern
   - [EXIT] キーを押せば、パターン作成を中断して最初の画面に戻る

  ・[DEL] キーを押すと、パターンが1世代進む
   Manual_7_Gen1_Pattern_ne
   右上に世代が表示される
   - [(-)] キーを押せば1世代進む
   - [EXE] キーを押せば世代が連続して進む
   - [EXIT] キーを押せば世代更新を中止して、世代数と所要時間を表示

  ・上の初期パターンが1316世代目になった画面 (例)
   Manual_8_gen1316_Pattern_new

  ・
[EXIT] キーを押すと、世代更新を中断して結果表示
   
Manual_9_Result
   
[SHIFT] [F6] を押すと、1316世代のパターン画面に切り替えられる

  [F6] プリセットパターン選択の場合 - CGモデルでの画面例
  ・
メニューで [F6] (16個のプリセットから選択) を押す
   
1_Cont_Menu

  ・
プリセットパターン1を表示
   
2_Cont_Pattern1_new

  ・
[↑] / [↓] キーでパターンを選ぶ
   
3_Cont_Pattern13_new
   
(例) 13個目のパターン (グライダー銃) を選ぶ

  ・
[F1] キーでプリセットパターンを確定
   4_Confirm_Pattern_new

  ・
プリセットから確定したのち [EXE] を押して手入力でチョイ足しできる
   5_Add_Dots_new
   
[EXE] で十字カーソルを表示 ⇒ 矢印キーでカーソル移動 ⇒ [EXE] でピクセルON

  ・[DEL]
で1世代目のパターンに進む
   6_Gen1_new
   
- [(-)] で1世代進む
   -
[EXE] で連続して世代が進む
   - 世代が連続して進んでいる時 [(-)] を押せば一旦停止

  ・
世代が連続して進んでいる時 [(-)] を押せば一旦停止
   
7_Gen231

  ・[EXIT]
キーでゲーム終了し、その時の世代数と最初からの実行時間を表示する
   8_Result_new
   - [SHIFT] [F6] を押すと 終了時のパターンの画面に切り替えられる


  プリセット初期パターン

   <パターン1>
   pt1 
   174世代目で安定状態になる。
   

   <パターン2>
   pt2 
   こんなに小さい5ピクセルから、大きく広がりながらグライダーを5機発射する。
   6機目のグライダーは途中で消滅。一般にはかなり長寿命だが、 電卓の狭い世界では
   652世代目で安定状態になる。
   

   <パターン3>
   pt3 
   たまたま見つけた面白いパターン。
   大きく広がらないのに、安定状態になるまで517世代と長寿命なのが特徴。
   

   <パターン4>
   pt4 
   たまたま見つけたパターン。横に広がり218世代目で安定状態になる。
   

   <パターン5>
   pt5 
   たまたま見つけた面白いパターン。
   途中から、画面全体のピクセルで計算と描画を行い負荷が最大になるので、
   プログラムのスピード評価に使える。
   グライダーを6機発射し、そのうち2機は途中で消滅。
   飛び去るグライダーを別にすれば、495世代目で安定状態になる。
   

   <パターン6>
   pt6 
   たまたま見つけた寿命の長いパターン(658世代)。
   但し、狭い画面よりも広がろうとするので、境界での特異現象あり。
   

   <パターン7>
   pt7 
   固定パターン(ブリンカー)の1つ。床屋さんのサインのようだ。
   

   <パターン8>
   pt8
   グライダーが反射を続けて往復移動する様子が面白い。
   

   <パターン9>
   pt9 
   グライダー: 回転しながら斜めに移動してゆく。
   

   <パターン10>
   pt10 
   小さい宇宙船と大きい宇宙船: 横に直進する。
   小さい宇宙船は壁に当たるとグライダーに変身する(画面端での特異ケース)。
   

   <パターン11>
   pt11 
   左右に往復運動するパターン(シャトル)。
   

   <パターン12>
   pt12 
   往復移動するパターン(シャトル)の1つ。
   壊れて消えそうで、消えずに往復運動するのが面白い。
   

   <パターン13>
   pt13 
   グライダー銃: MITのゴスペラーが最初に見つけた無限増殖するパターン。
   次々にグライダーが発射される。
   
   
   <パターン14>
   pt14 
   シュッシュポッポ列車 (Puffer Train): 煙(スパイク)を残しながら移動する。
   

   <パターン15>
   pt15 
   移動するパターン。ゴミ(スパイク)を残さないのが面白い。
   

   <パターン16>
   画面全体にランダムに生成させる初期パターン
   



<目次に戻る>



プログラムのロジックについて

単純な規則に従って LIFE245.g1m を書いていますが、1つだけ工夫しています。結構な量の行列計算を出来るだけ少なくするために、パターンの周りの最低限必要なビットマップ領域だけの配列計算をするようにしています。ビットマップ領域の拡大に伴ってフレキシブルに行列の要素数を拡大しているので、パターンの領域が広がるにつれて両列計算処理に時間がかかるようになります。

LIFE245F.g1m は、ライフゲームの規則に従ってパターンを進化させるブロック (下記) を、丸ごと専用関数 DotLife() に置き換えた高速化バージョンです。具体的には、LIFE245.g1m の以下の部分を DotLife() に置き換えています。

LIFE245.g1m : パターンを進化させるブロック
 '== Calc Next Map ==
 For T→Y To B
 For L→X To R
 0→C
 CellSum(Mat B[X,Y])→C
 If Mat B[X,Y]:Then
 If C≦1 Or C≧4:Then
 0→Mat C[X,Y]
 IfEnd
 Else
 If C=3:Then
 1→Mat C[X,Y]
 IfEnd
 IfEnd
 'Expand Map Area
 If C:Then
 If l≦2:Then 2→l
 Else X≦l⇒Dsz l:IfEnd
 If r≧126:Then 126→r
 Else X≧r⇒Isz r:IfEnd
 If t≦2:Then 2→t
 Else Y≦t⇒Dsz t:IfEnd
 If b≧62:Then 62→b
 Else Y≧b⇒Isz b:IfEnd
 IfEnd
 Next:Next
 l→L:r→R:t→T:b→B


LIFE245F.g1m : 関数に置き換えたブロック
 '== Calc Next Map ==
 DotLife(Mat B,L,T,R,B)→Mat C


見て判るように、'== Calc Next Map == ブロックは、ライフゲームの規則通りに所定の領域内のパターンを1世代更新しています。この処理をごっそり DotLife() 関数で処理させています。

さて、C.Basic はインタープリタで、プログラムを読み込みながら動作します。将来的にコンパイラ版も構想しており、 DotLife() 関数は、バイナリレベルで処理しており、コンパイラ版の動作速度をシミュレートしたものです。その結果 7.7倍高速化しています。コンパイラ版はそれ以上の高速化が期待されます。

なお、実際のコードは、ダウンロードしたzipファイルを解凍して得られる textフォルダ内にあるテキストファイルをご覧下さい。

さて、サブルーチン LMAP2P.g1m では、配列データとしてプリセットパターンを記述していて、それをビットマップとして画面に表示するようにしています。プリセットパターンは、矢印キーで切り替えます。16パターン目は、画面全体にランダムにドットを書いています。
<目次に戻る>



各モデルでの処理速度
fx-9750GIII を使い、LIFE245LIFE245F について、ノーマル 58.9MHz (Ftune3[F1]の設定) と 235.9 MHz (Ftune3{F5]の設定) で処理時間を調べます。プリセットパターン3 は、電卓の画面の外に広がらず、517世代まで変化が続く面白いパターンなので、このパターンが517世代になるまでの時間を比較します。

この測定のため、プログラムソースの '== Key Operation == のすぐ上の行に以下を追加します。
 G=517⇒Break
  '== Key Operation ==

すると、517世代のパターンを描画した直後に世代進化を止めて、最後の表示にジャンプし、以下のような表示をしてプログラムが終了します。本プログラムでは、操作による時間を含まず、パターンの世代更新の実時間を計測しているので、精度の良い処理時間が表示されます(ノーマルクロックで LIFE245F.g1m 実行の例)。
 Display_Result
※ USBケーブルでPCと接続し、カシオ提供の Screen Receiver でPCに画面を表示、pngファイルとしてダウンロードしたのが上のイメージです。Screen Receiver に接続するとパターンの変化がリアルタイムでPCに表示され、その結果517世代までの時間が41.64 秒になっており、USB接続していない時 (34.47 秒) よりも処理時間が長くなっています。PCにリアルタイム表示させると表示のためのオーバーヘッドがあるようです。


LIFE245, ノーマル 58.9MHz - 258.2秒 (4分18.2秒) [2021/06/14 修正]
 

  描画領域が広がるにつれ、目に見えて描画が遅くなることが確認できます。


LIFE245, チューンアップ 235.9MHz - 59.4秒
 

  Ftune3[F5] の設定 235.9MHz でようやく実用的な速度になります。


LIFE245F, ノーマル 58.9MHz - 34.4秒
 

  DotLife() 関数を用いた LIFE245F では、ノーマル設定 58.9MHz でも十分に速くなります。


LIFE245F, チューンアップ 235.9MHz - 7.8秒
 

  DotLife() 関数を使った LIFE245F は、Ftune3[F5] 設定にすると、非常に高速になります。 


複数のモデルでFLIE245Fを走らせ、 パターン3の517世代までの処理時間をまとめます。
モデルOSノーマルクロック
チューニングツール
[F1]設定
処理時間
チューンアップ
チューンアップツール
[F5]設定
処理時間
fx-CG503.50115.16 MHz24.0 秒196.01 MHz12.8 秒
fx-CG202.0058.90 MHz24.1 秒250.05 MHz14.7 秒
fx-9750GIII3.4058.90 MHz34.5 秒235.90 MHz7.8 秒
fx-9860GII (SH4)2.0929.49 MHz36.1 秒235.93 MHz5.5 秒
fx-9860GII (SH4)2.0429.49 MHz36.2 秒235.93 MHz5.6 秒
fx-9860G AU1.0329.49 MHz49.6 秒117.96 MHz19.0 秒
fx-9860GII SD (SH3)2.0029.49 MHz49.7 秒117.98 MHz19.0 秒
fx-9860G2.0029.49 MHz49.8 秒117.96 MHz19.1 秒
fx-9860G Slim1.1029.49 MHz49.9 秒117.96 MHz19.1 秒
fx-9860G Slim2.0029.49 MHz49.9 秒117.96 MHz19.1 秒

ノーマルクロックでは、fx-CG50 が最速です。一方、チューンアップの場合は、モデルによりオーバークロック可能レベルが異なり、最速は fx-9860GII / SD (SH4) となっています。

このようにライフゲームと新旧様々なモデルで動作します。お持ちのモデルに適切にインストールして遊んでみてください。

<目次に戻る>



ライフゲームに関するサイト
ライフゲームについての情報をまとめました。

ライフゲームの解説
ライフゲームの世界 - 複雑系コミュニティ動画 by はむくん - 超お勧め
 ライフゲームの世界1【複雑系】
 ライフゲームの世界2【複雑系】
 ライフゲームの世界3【複雑系】
 ライフゲームの世界4【複雑系】
 ライフゲームの世界5【複雑系】
 ライフゲームの世界6【複雑系】
 ライフゲームの世界7【複雑系】
 ライフゲームの世界8【複雑系】
 ライフゲームの世界9 最終回【複雑系】
▶ 人口知能に関する断創録 - ライフゲームの世界
▶ 人口知能に関する断創録 - ライフゲーム 
▶ ライフゲームから生命誕生(前編)
▶ ライフゲームから生命誕生(後編)
▶ 数字の難民 - ライフゲームを知っていますか?《機械仕掛けの生物》
▶ ウィキペディア - ライフゲーム

▶ ライフゲーム入門 (Introduction The Game of Life)
▶ 続・ライフゲーム入門 (Game of Life Demo)


fx-5800P でライフゲームを作った人が居た!
▶ nimu.akhの日記: 関数電卓でライフゲーム


ライフゲームの数学的側面
▶ ウィキペディア - ライフゲームの物体一覧
▶ ウィキペディア - セル・オートマトン
▶ ウィキペディア - チューリングマシン

<目次に戻る>





応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 




keywords: fx-9860GIICasioBasic、プログラミング入門グラフィックスプログラム関数電卓

リンク集 | ブログ内マップ

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

Re: ダウンロードのリンクのお礼

hangyodon1123様

> 私は、プリセットパターンを眺めているだけで満足しておりますので、
> あまり期待しないでくださいね。

あ、お気になさらないでください。


> 次は、C.Basicの処理能力を試すのに、手持ちのfx-CG10にも
> 導入してみたいと思います。

C.Basic for CG は fx-CG10/20 で動作させると、自動的にクロックを上げる機能があります。
クロックを上げて不都合がある場合は、ノーマルクロックのまま動作できますので、戻せます。

お楽しみください。


>
> ではでは。

ダウンロードのリンクのお礼

管理人様、こんにちは。

ダウンロードリンクの修正、ありがとうございます。

> もしLMAP2P の改善版ができたら、是非ともお知らせください。

私は、プリセットパターンを眺めているだけで満足しておりますので、
あまり期待しないでくださいね。

次は、C.Basicの処理能力を試すのに、手持ちのfx-CG10にも
導入してみたいと思います。

ではでは。

Re: ダウンロードのリンク確認

hangyodon1123様

ダウンロードリンクの問題、ご指摘頂きありがとうございます。
早速修正致しましたので、大丈夫だと思います。

fx-CG50でライフゲームを遊んで頂いているとのこと、結構遊べると思われませんか?
プリセットパターンを追加したり、変更したりして頂ければ、さらに遊べるかも知れません。

もしLMAP2P の改善版ができたら、是非ともお知らせください。

ではでは...

ダウンロードのリンク確認

管理人様、こんにちは。
いつもブログを楽しく読んでおります。

以下のプログラムのダウンロードの
リンクが切れているようです。
ご確認ください。
尚、高速版は問題ありません。

ライフゲームのプログラムファイル
  ▶ ライフゲーム Ver 2.45

fx-CG50にインストールして
楽しんでおります。
もしかすると、C.Basicが本家に
置き換わるかも知れませんね。
ではでは。

Re:C.Basic のバージョン履歴

管理人様、こんにちは!

>修正しました。
>ついでに、Ver 0.73 もダウンロードできるようにしました。

確認できました(^^)

Ver 0.73は最新版のVer.0.99mだけで動かなくなってしまいましたけど、Ver.0.74であれば従来のバージョンでも問題なく動作するので早く仕様変更しておくべきでした(^^;

行列をMat表記抜きの配列仕様で書き直せばさらにC.Basicっぽさが出るかもしれませんね(^^)


>これまでに e-Gadget で公開されたバージョンの一覧を作ってみました。
http://egadget2.web.fc2.com/archives/fx-9860GII/Addin/CBasic.html
>覚えている範囲で、互換性を切るような大きめの仕様変更ごとに改行してみました。
>こうしてみると、ここまで来たものだ...とチョット感慨にふけってしまいます。

最初の0.10から互換性アップと独自拡張での変わり具合を見ていくと、
ここまでバージョンアップ出来たのも、管理人様やガノー様の貴重なアドバイスのおかげですね。
本当にありがたく思います(^^)

C.Basic のバージョン履歴

sentaro様

これまでに e-Gadget で公開されたバージョンの一覧を作ってみました。

http://egadget2.web.fc2.com/archives/fx-9860GII/Addin/CBasic.html

覚えている範囲で、互換性を切るような大きめの仕様変更ごとに改行してみました。

こうしてみると、ここまで来たものだ...とチョット感慨にふけってしまいます。

Re: ver.0.74のリンク先が…

sentaro様

> C.Basicの行列仕様変更に早速に対応していただきまして感謝です(^^)
>
> ver.0.74のダウンロードのリンク先がHIT&BLOWになってますです…(^^;

修正しました。
ついでに、Ver 0.73 もダウンロードできるようにしました。


ver.0.74のリンク先が…

管理人様、こんにちは!

C.Basicの行列仕様変更に早速に対応していただきまして感謝です(^^)

ver.0.74のダウンロードのリンク先がHIT&BLOWになってますです…(^^;
最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

プログラム電卓を実際に使って気づいたこと、自作プログラム、電卓での Casio Basic, C.Basic そして Casio Python プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではありません。いつでもどこでもプログラミングができるプログラム電卓が好きな1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR