構築中の惑星基地の気圧を維持する必要がある 2D タイル ベースのゲームをいじっています。密閉された真空内でガスを分散させるための簡単なシステムを作成できるかどうかを確認したいと考えています。ゲームループのティックごとに、ガスが外側に忍び寄り、あらゆる方向の空のセルを埋めます。建物に穴が開いている場合は、ガスが漏れるはずです (理想的には高速で)。
私はこの論理に従う大雑把な試みをしました:
- セルを考えてみましょう (C)
- その北側のセルを見てください (N)
- N が C よりも多くのガスを持っている場合は、差 (dN) を計算します。
- N から 1/4 dN を削除し、C に 1/4 dN を追加します
- C の南、西、東のセルについて繰り返します。
現在、この種の機能はありますが、あまりスムーズではありません。多くのガスが同様のガス含有量のセルに閉じ込められるため、システムは急速に停滞しますが、雲の端では、各ティックの進行はほとんどありません。封じ込め構造に穴が開いていると、ガスの排出が途方もなく遅くなり、個々の細胞の違いが内容物を吸い始めるのを待たなければなりません。
セルのクラスターを考慮して、それらを他のクラスターと比較するなど、ソリューションをかなり複雑にする必要があると思いますが、これについてどうすればよいかわかりません。誰かが私をより良い解決策の方向に向けることができますか?
これは、私がどのように機能させたいかを示した図です。読み終えたとき、少し欠陥があるかもしれないことに気付きました。 http://imgur.com/a/pQ841