Subscribed unsubscribe Subscribe Subscribe

森林火災のシミュレーション 6 of 6

動かしてみる。苦労した割に面白くない。 require "color" local timerTicking = false local step = 0.02 -- nspire 側で用意した行列 "mat" を lua 側の変数 mat に読み込む。 local mat = var.recall("mat") ----------------- ルール行列と発火レベル範…

森林火災のシミュレーション 5, forestFire()

これまでに作った函数を全部まとめて forestFire() 函数をつくった。上段が nspire 側で用意した初代行列。 左下が、初代行列に色づけしたもの。 右下が、lua から返された次世代行列に色づけしたもの(緑が樹木、赤が発火、灰色が灰、黄色が発火準備状態)…

森林火災のシミュレーション 4, matNext()

ルール行列と発火セルの数とをもとに現世代行列を次世代行列に書き換える。上から順に「lua に読み込んだ現世代行列」「lua に読み込んだ、発火セルの数」「lua から返された次世代行列」。 -- nspire 側で用意した行列を lua に読み込む。 local mat = var.…

森林火災のシミュレーション 3, countFire()

注目セルとそのムーア近傍と合わせて 9 つのセルに含まれている、発火状態(レベル 5 ~ 8)にあるセルの数をカウントする。 フィールドの外は全部空き地(レベル 0)とする。上 が lua に読み込んだ現世代行列、下が lua から返されたカウント数。 -- nspir…

森林火災のシミュレーション 2, drawCell()

前回のスクリプトを少し変えた。on.paint() 函数の中身をすっきりさせるため、大部分を drawCell() 函数へ移した。 require "color" -- nspire 側で用意した行列 "mat" を lua 側の変数 mat に読み込む。 local mat = var.recall("mat") ----------------- …

森林火災のシミュレーション 1, drawCell()

ライフ・ゲームのときと同じ手順でスクリプトを作る。森林を等間隔に分割し、樹木の部分を緑色、空き地を茶色、火災発生箇所を赤色で表現する。シナリオ(見方はライフ・ゲームのときと同じ): (下掲参考文献の図 11.24。図中の「近傍にある発火セルの合計…