狠狠撸

狠狠撸Share a Scribd company logo
ì?	
 ?
2次元セルオートマトン	
 
くらげノート
Cell	
 ?class(.h)	
 
ぱっと見は、1次元セルオートマトンとほとんど変わ
らないです。	
 ?
	
 ?
引数付きコンストラクタの引数が増えたこと。	
 ?
get_nowStateとget_nextStateが増えたこと。	
 ?
が主な変更点です。	
 ?
	
 ?
次のページ以降も変化したところだけ見ていきます。
Cell	
 ?class(.cpp)1/4	
 
引数付きコンストラクタにwhyが追加され
ました。2次元になるので、縦横のセル
の並びを考えなければいけません。	
 ?
それぞれにcell_sizeをかけて調整します。
Cell	
 ?class(.cpp)2/4	
 
calcStateではライフゲームの規則
を適用しています。	
 ?
	
 ?
はじめの動画では、ここで
set_nowStateをしていたので、同
期性が失われていました。	
 ?
	
 ?
next_Stateにすることで同時に更
新することができます。
Cell	
 ?class(.cpp)3/4	
 
checkStateでは今までの反省をいかし、シン
プルになりました。	
 ?
	
 ?
drawをするときに、現在の状態を更新しま
す。こうしないと同期性が???。
Cell	
 ?class(.cpp)4/4	
 
実は前回までのコードでも書く必要があったのではないか。という関数です。	
 ?
現在と次の状態をセットする関数ですが地味に重要です。
testApp(.h)	
 
2次元配列
でオブジェ
クトを生成
します。	
 ?
配列のサイ
ズはCellのク
ラスで定義
しています。
testApp(.cpp)1/2	
 
checkCalcでは近傍セルた
ちの状態をチェックしカ
ウントします。	
 ?
チェックし終えたら、計
算に移り、次の状態を決
定します。
testApp(.cpp)2/2	
 
draw関数はお馴染みの座標ずらしと各オブジェクトのdrawを呼び出します。
2次元セルオートマトン笔诲蹿

More Related Content

2次元セルオートマトン笔诲蹿