このGame of Lifeの質問に触発されました。
Wireworldは、「ワイヤー」を流れる「電子」をシミュレートします。「ワイヤー」の単純な配置は、一般的な論理ゲートの動作を生成します。
Wireworldセルラーオートマトンでデジタル時計を作成するように挑戦します。時計は通常の方法で00:00から23:59まで、またはAM / PMインジケーターで11:59までカウントアップしてからリセットする必要があります。
エントリは目に見えるように2つの部分に分割する必要があります。パートAには、すべての非表示ロジック、数字のインクリメントとループに関与するすべてのパーツが含まれている必要があります。パートBは、ディスプレイとそれを駆動するロジックになります。これらの2つの部分間の唯一の接続は、BCDの 4桁の時間を表す16本のワイヤである必要があります(AM / PMインジケータ用のオプションワイヤ1本と、信号が連続していない場合の信号クロックライン用のオプションワイヤ1本付き)。(編集:常にゼロのワイヤは省略可能)
クロック動作のタイミングは一貫している必要があります。シミュレーションでは、状態間の1440の遷移ごとに同じ数のティックを使用する必要があります。16本のワイヤ上の電子は、パーツAから同時に放出され、並行してトリップを開始する必要があります。
これは、コードとゴルフのコンペティションです。スコアは、パーツAを囲む軸に沿った境界ボックスの領域です。
同様に、これがテキスト言語である場合、スコアは4つの4ビット出力を生成するクロック管理関数のサイズになります。この出力には、ループと4つのカウンターのロジックが含まれ、その出力をデコードおよび印刷する関数ではありません。
パートBは、好きなだけ大きくも小さくもできます。ワイヤーワールド回路からの出力を単純に「デバッグ」する簡単な方法はないため、提出物の出力がそれを実行している誰かに見えるようにするためにのみ必要です。オンラインで利用可能な複数のBCD-> 7セグメント回路があります。好きなものを自由に使用するか、クロック信号線が必要な場合は独自のものを作成し、AM / PMインジケーターを数字と同様のスケールで表示してください。
編集:パートBはオプションになりました。パートAからのBCD出力がある場合は、お気軽に送信してください。クロックが動作することを確認するのは面倒ですが、一時停止したシミュレーションではビットの列を問題なく読み取ることができます。