ゆきくらげのブログ

熱効率1億%の永久機関で人生勝ち組

マイクラの赤石で「万能ボドゲ盤」を作りたい話

 マイクラのお話です。受験生なのでゲーム自体があまりできませんが構想だけ落書きしておきます。あと確実に既出。
 レッドストーン、所謂赤石では様々なことができます。特定のアイテムを入れればドアが開くようなもの、プリンター、そして計算機まで。(この計算機に関しては僕の友人が凄まじいです。)そこで僕がまず最初に作りたいと思ったのは「リバーシ」でした。
 リバーシは人間がやると簡単に思えますが意外と裏の処理が面倒です。置いたところから8方向に処理を飛ばして色々しなきゃなりません(伝われ)。そして、この処理を考えていて思い立ったのが、「なにもリバーシに限定しないでもいろいろなボードゲームに応用できる基盤を作ってしまえばどうか」ということです。要は「プログラミングができる赤石回路」です。
 プログラミング、といってもここをコマンドブロックに頼ってしまうのは風情のぽの字もないので「チェストにいれたブロックでプログラミングをできるようにしよう」というのが乙なものです。 
 そして今現在の構想がこちらになります。

 まず今回の構想の中心になるのは「ニブル」という単位で、言ってしまえばただの4ビットの事です。なぜ4ビットかというとこれは簡単な理由で、2ビットだと少なすぎて8ビットだと多すぎるからです。単純。0~15までの数量を表せますね。
 そして「メモリ」を作ります。16×16 = 256 ニブルのデータ保持が可能なものです。0-0番地から15-15番地までにアクセスできるようにします。ココは頑張って作りたい。
 次は「CPU」です。1ニブルの足し算引き算しか基本的にしないのでここは作れそうです。
 そして最後に「プログラミング」の部分なのですが、これに悩みました。結論から言うと、
 基本的にウール4ブロックを「1行」として扱います。ウールをチェストの中に入れるわけです。ウールは16種類あるので0~15までを表現できます。動作は単純なもので「メモリ上で、左の2ブロックの座標のデータを右の2ブロックの座標へコピーする」だけです。足し算引き算の処理は適当に実装します。
 次に例外として、コンクリートのブロックを2つセットで使え、「メモリ上で、そのブロックの座標のデータをウールとして使用」できます。

 例えば、座標1-2にデータ3が入っていたとします。ウール16種類をそれぞれW₀~W₁₅、コンクリートをC₀~C₁₅とします。
 C₁C₂W₄W₅W₆ という一行の処理の過程は、まず「C₁C₂」を「W₃」と読み替えます(座標1-2にデータ3が入っているので)。そうすると、W₃W₄W₅W₆という列になりますが、これが意味することは「座標3-4のデータを座標5-6にコピーする」ということになります。

 コレ、いろいろ考えましたが結構万能です。たぶんリバーシも作れる。後はチェストを複数個作って関数みたいにできるとか考えてます。
 盤面に出力するのは、リバーシの場合ならメモリの0-0から7-7までを適当に出力したいと思います。

~問題点~
☆処理が遅い☆
 コレは解決しそうにないです。作るところにロマンがあるのです。
☆19路盤☆
 知らん。