// グラフィックパラメータ 空間サイズは50 点サイズは4 // シミュレーションパラメータ 赤人数は200 青人数は200 閾値は4 // 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 配置済人数=0 配置済人数<青人数の間 Xは空間サイズの乱数+1 Yは空間サイズの乱数+1 もし空間[X,Y]=0ならば 空間[X,Y]=2 配置済人数=配置済人数+1 画面描画 ●実験開始 時計を開始 ●実験停止 時計を停止 ●画面描画 裏画面を画面クリア Xで1から空間サイズまで繰り返す Yで1から空間サイズまで繰り返す DX=(X-1)*点サイズ DY=(Y-1)*点サイズ もし空間[X,Y]=1ならば 線色は赤色 裏画面のDX,DYからDX+点サイズ-1,DY+点サイズ-1へ四角 もし空間[X,Y]=2ならば 線色は青色 裏画面のDX,DYからDX+点サイズ-1,DY+点サイズ-1へ四角 裏画面を母艦の20,50へ画像コピー 母艦再描画 ●段階実行 Xで1から空間サイズまで繰り返す Yで1から空間サイズまで繰り返す もし空間[X,Y]<>0ならば 人種=空間[X,Y] 周人数=0 DXで-1から1まで繰り返す DYで-1から1まで繰り返す もし空間[X+DX,Y+DY]=人種ならば 周人数=周人数+1 もし周人数<閾値ならば DXは3の乱数-1 DYは3の乱数-1 もし(0 < X+DX)かつ(X+DX <= 空間サイズ)かつ(0 < Y+DY)かつ(Y+DY <= 空間サイズ)ならば もし空間[X+DX,Y+DY]=0ならば 空間[X,Y]=0 空間[X+DX,Y+DY]=人種 画面描画