Biham-ミドルトン・レヴァインのトラフィックモデルは、モデルがトラフィックを簡素化自己組織化セルオートマトンです。
ランダムな開始位置を持つ格子上の点で表される多数の車で構成されます。各車は2つのタイプのいずれかです。右(この記事では赤で表示)。2種類の車が交互に移動します。各ターン中、対応するタイプのすべての車は、別の車によってブロックされていない場合、1ステップ進みます。
あなたの仕事は、このモデルをアニメーションとして視覚化することです。ここにいくつかの良いデモンストレーションがあります。
入力
密度を表す0〜1の浮動小数点数、および表示されるグリッドの高さと幅を表す2つの整数。入力が有効であり、関数へのパラメーターまたはユーザー入力からの読み取りが両方とも問題ないと仮定します。
例:(0.38 144 89
上の画像に対応)
出力
実行中のこのモデルのアニメーションを表示する、少なくとも80x80のグリッド。開始時に、グリッドはグリッドが入力密度に達するまでランダムに配置されます。入力密度は、赤と青の半分になります(つまり、密度にグリッドの正方形の総数を掛け、好きなように丸めます)。密度はこの値である必要があります。つまり、確率として各セルを密度で埋めることはできません。各ステップで、1種類の車が下または右に移動し、端を通過すると折り返します。移動する車のタイプは各ステップを交互に切り替えます。アニメーションを表示可能にするには、各ステップ間に少なくとも10ミリ秒が必要です。
ルール
車は、互いに区別でき、背景と区別でき、各車のタイプが同じ色または記号である限り、任意の色または記号を使用できます。
コンソールとグラフィック出力の両方が許可されています。コンソール出力の場合、印刷可能な記号は問題ありませんが、出力は文字のグリッドとしてなければなりません。
スクリーンショットまたはgifがない場合は、作成した出力の種類を指定してください。
シミュレーションは永久に実行する必要があります。
出力は少し複雑なので、質問がある場合はコメントしてください。