狠狠撸

狠狠撸Share a Scribd company logo
ì?	
 ?
1次元セルオートマトン	
 
くらげノート
Cell	
 ?class(.h)	
 
今回はセルの数は9個です。	
 ?
動きを見るのに少なすぎる気がしましたが、9個。	
 ?
	
 ?
無駄に前回のクラスを継承していますが意味があ
りません。	
 ?
まあ気持ちです。	
 ?
	
 ?
前回と関数も変数もお変わりないです。	
 ?
	
 ?
ちなみにコピーコンストラクタを作っていますが、	
 ?
これも結局使いませんでした???。	
 ?
	
 ?
せっかくなんで継承とコピーコンストラクタは軽
く触れます。
Cell	
 ?class(.cpp)1/2	
 
さきほど書き忘れていましたが、cell_size	
 ?は60で定義
しています。	
 ?
	
 ?
引数付きコンストラクタはexを引数にもらい、x座標を
調整します。	
 ?
隣とぶつからないようにcell_sizeの分だけずらしていま
す。後は同じ。	
 ?
	
 ?
コピーコンストラクタです。	
 ?
参照渡しでオブジェクトを受け取り、そのオブジェク
トと同じ値のオブジェクトを作ります。	
 ?
これは、次のようにオブジェクトを宣言したときに呼
ばれます。	
 ?
	
 ?
Class	
 ?c2	
 ?=	
 ?c1;	
 ?
すでにあるc1をもとにc2を作れます。
Cell	
 ?class(.cpp)2/2	
 
前回と同じcalcState()です。	
 ?
	
 ?
	
 ?
checkState()も変化なしです。	
 ?
ポインタ渡しでオブジェクトを受け取り、
get_nowStateで値をもらいます。	
 ?
しかし、if文はやはりいらないですね???。	
 ?
	
 ?
よく出てくるcoutですが、C言語で言うとこ
ろのprin@()です。	
 ?
coutの後ろ<<で文字を送ります。文章は
“”で囲み、変数はそのままでいいです。	
 ?
endlというのは改行を伝えます。	
 ?
	
 ?
使用するには	
 ?
include	
 ?<iostream>を忘れないように。
testApp(.h)	
 
配列でセルを作ります。それ以外は特にないので次へ。
testApp(.cpp)1/3	
 
setup()は前回と同じです。	
 ?
update()では次のページで紹介するcheckCalcという関数を呼びます。	
 ?
draw()では今回配列なのでfor文をつかって順番に描画します。	
 ?
これはほぼ同時といっていい範囲だと思います。
testApp(.cpp)2/3	
 
restart()も前回とほぼ
変わらず、配列なの
でfor文で、ここでそ
れぞれのxをもとに
引数付きで初期化さ
れます。	
 ?
	
 ?
checkCalc()では、自
分の前後のセルを
checkStateさせてか
ら計算に入ります。	
 ?
	
 ?
backIやnextIは次の
ページで紹介します。
testApp(.cpp)3/3	
 
nextIとbackIはほぼ同じです。	
 ?
nextIの方を説明します。	
 ?
周期的境界条件のために、9個目のセル
の次は1個目のセルになるように次のイ
ンデックスを指定します。	
 ?
	
 ?
backIも同様に1個目のセルの前が9個目
のセルになるようにしています。
1次元セルオー”トマト”ン

More Related Content

1次元セルオー”トマト”ン