// グラフィックパラメータ 空間サイズは50 点サイズは4 // シミュレーションパラメータ 人数は1000 // GUIの準備 母艦を画面クリア 裏画面とはイメージ その可視はオフ 裏画面のWは空間サイズ×点サイズ 裏画面のHは空間サイズ×点サイズ 開始ボタンとはボタン そのテキストは「開始」 そのXは10 そのYは10 これのクリックした時は 実験開始 停止ボタンとはボタン そのテキストは「停止」 そのXは(開始ボタンのX+開始ボタンのW+20) そのYは10 これのクリックした時は 実験停止 初期化ボタンとはボタン そのテキストは「初期化」 そのXは(停止ボタンのX+停止ボタンのW+20) そのYは10 これのクリックした時は 初期化 時計とはタイマー その値は10 その時満ちた時は 段階実行 // シミュレーション本体 空間とは配列 初期化 ●初期化 Xで0から空間サイズ+1まで繰り返す Yで0から空間サイズ+1まで繰り返す 空間[X,Y] = 0 配置済人数=0 配置済人数<人数の間 Xは空間サイズの乱数+1 Yは空間サイズの乱数+1 もし空間[X,Y]=0ならば 空間[X,Y]=1 配置済人数=配置済人数+1 画面描画 ●実験開始 時計を開始 ●実験停止 時計を停止 ●画面描画 裏画面を画面クリア Xで1から空間サイズまで繰り返す Yで1から空間サイズまで繰り返す DX=(X-1)*点サイズ DY=(Y-1)*点サイズ もし空間[X,Y]=1ならば 線色は赤色 裏画面のDX,DYからDX+点サイズ-1,DY+点サイズ-1へ四角 裏画面を母艦の20,50へ画像コピー 母艦再描画 ●段階実行 仮空間とは配列 空間を仮空間にデータコピー Xで1から空間サイズまで繰り返す Yで1から空間サイズまで繰り返す 周人数=0 DXで-1から1まで繰り返す DYで-1から1まで繰り返す もし空間[X+DX,Y+DY]=1ならば 周人数=周人数+1 もし(空間[X,Y]=1)ならば もし(周人数=3)または(周人数=4)ならば 仮空間[X,Y]=1 違うならば 仮空間[X,Y]=0 違うならば もし(周人数=3)または(周人数=6)ならば 仮空間[X,Y]=1 違うならば 仮空間[X,Y]=0 仮空間を空間にデータコピー 画面描画