問題タブ [conways-game-of-life]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ビットマップ/ビット配列を 2D 平面にレンダリングする最良の方法 (OpenGL を使用)
わかりました、これは私が持っているものです。ライフ生成のコンウェイ ゲームからのライブ状態またはデッド状態を含む 1 次元ビットマップ (またはビット配列、ビットセット、ビット文字列ですが、今はビットマップと呼びます) があります。のセル(x, y)
はビット at で表されy * map_width + x
ます。
これで、人生ゲームの「エンジン」が動作するようになりました。グラフィカルなものをレンダリングできればいいのですが。これには OpenGL が適していると思いましたが、どのように開始すればよいか、ビットマップを黒の 'n白いピクセル。
もしあなたが今、「馬鹿なopenglはダメだ...」と思っているなら、遠慮なく言ってください。私は変更を受け入れます。
編集
1 バイトあたり 8 ビットを格納するコンパクトな bitarray を使用し、マスキングを使用してそれらのバイトを取得することを忘れていました。これは私の手作りのライブラリです。
wolfram-mathematica - 人生ゲームの最適化
私は mathematica で人生ゲームのプログラムを書いていますが、セルの何パーセントかに再生規則を適用できるようにする必要があるという注意点があります。MapAt を使用して新しい方法を試してみたいのですが、liveNeighbors は機能しません。要素ごとに、そして私が以前に行ったことを正確に行わずにそれを修正する方法を考えることはできません(多くの面倒なインデックス作成)、誰か提案はありますか? (これは、以下にリストされている古い方法よりも効率的であると想定しています。そうでない場合は、私に知らせてください。私はただの初心者です!)。
私がやろうとしていること:
私がすでに行ったこと:
ありがとう!
terminology - コンウェイのライフ ゲームの定義 / セル オートマトン
これは実際にはプログラミングに関する質問ではありませんが、プログラミング コミュニティが私を助けてくれる質問です。
セルオートマトン/コンウェイのライフゲームの意味や目的を一般大衆に強調する短い文章を書く必要があります.
私はこれを書きましたが、これは正しいですか、もっといい言い方ができますか?
その名前にもかかわらず、コンウェイのライフ ゲームはゲームではなく、カオス理論における創発を示す数学的モデルです。
それはちょっと間違っていますが、私は科学者でも数学者でもありません!
助けてください。
ありがとう
java - 人生ゲームの課題
私のボードは、隣人が 3 つ未満のグループを正しく検出してそれらを殺しますが、隣人が 3 つあるセルを検出して生成しないようです。
何かご意見は?
十分な情報を提供していない場合はお知らせください。さらにコードを貼り付けることができますが、関連する部分はこれですべてだと思います。
提供されたアドバイスを事前に感謝します。
要求された lifeCycle メソッドは次のとおりです。
参照用に LifeGUI を添付しましたが、このコードは提供されており、私が変更することを意図したものではありません。
optimization - 単語を並列にカウントするようにMITのビットカウントアルゴリズムを微調整しますか?
よく知られているMITビットカウントアルゴリズムのバージョンを使用して、SSE2命令を使用してコンウェイのライフゲームで隣人をカウントしたいと思います。
これがcのMITビットカウントで、63ビットを超えるビットカウントをカウントするように拡張されています。
これがPascalのバージョンです
この構造のビットを並行してカウントしようとしています。
この構造の中央に16ビットがあり、検索する必要があることに注意してください。SSE2を使用して、中央の16ビットのそれぞれのネイバーカウントを計算したいと思います。これを行うために、スライスAをXMM0ローワードワードに、スライスBをXXM0-dword1などに配置します。XMM0をXMM1にコピーし、XMM0のローワードのビットのビット
をマスクします。XMM0のワード1についても同じようにします。異なるスライスとマスクを使用して、XMM0とXMM1の各単語が異なるピクセルのネイバーを保持していることを確認します。012-456-89A
5
質問
MITビットカウントを微調整して、各XMMワードのワード/ピクセルあたりのビットカウントを取得するにはどうすればよいですか。
備考
ルックアップテーブルを使用したくないのは、すでにそのアプローチがあり、SSE2がルックアップテーブルへのメモリアクセスを必要としないことでプロセスを高速化するかどうかをテストしたいからです。
私はこれをDelphiでプログラミングしており、x86 + SSE2アセンブリコードを使用しているため、SSEアセンブリを使用した回答が最適です。
c# - プログラムのメモリ消費量が多すぎる
私は WPF を使用して、Conway の Game of Life のシミュレーターを開発しています。
何らかの理由で、プログラムが最大 400,000K のメモリを使用することがあります (多数のセルを非常に高速に描画する場合)。
メモリ使用量を減らしたり、それによって引き起こされるラグを減らしたりするにはどうすればよいですか。
編集 1: メイン ウィンドウ コード: http://pastebin.com/mz0z7tBu
グリッド クラス: http://pastebin.com/ZHX1WBuK
セル構造:
編集 2: プログラムの構造を説明しようと思います: セルは int 型の AutoProperty ネイバーと bool 型の AutoProperty IsAlive を含む構造です。
CellGrid は、セルの 2D 配列をラップするクラスです。反復ごとに、各セルの Neighbors プロパティが更新されて、生きているネイバーの数が含まれます。次に、各セルの IsALive が true または false に設定されます。これは、ネイバーの数と以前の IsAlive 状態に依存します。
MainWindow クラスには、CellGrid タイプのオブジェクトがあります。グリッドを画面にレンダリングします。
編集3:
XAML: http://pastebin.com/Zp3dr8zc
リソース.xaml:
perl - Game of Life in Perl -- C++ からコードを変換する際の問題
私は最近、Perl に書いた Conway のライフ ゲームの C++ コードをコピーしようと試み始めました。ほぼ一語一句コピーしました。ただし、C++ コードの出力は Perl のものとは大きく異なります。C++ コードは完全に実行されますが、Perl コードは奇妙な動作をします。ライフ ゲームを見たことがある人なら誰でも、ゲームの次の状態が奇妙であることに気付くはずです。
それぞれ[]
が生きているセルを表し、2 つの空白は死んだセルを表します。奇妙な部分は、コードを何度も実行しようとすると表示される水平線と垂直線です。予想される動作 (グライダー、オシレーターなど) はまだ見たことがありません。
私のコードは次のとおりです。ヘルプ/説明をいただければ幸いです。前もって感謝します!
binary - 入力を出力に変換する二項演算を見つけたい
入力と出力が与えられた場合:
結果を得るために行/列に対して実行できる操作はありますか? たとえば、私の最善の試みは
((Y AND NOT Y-1) XOR (Y AND NOT Y+1)) OR ((X AND NOT X-1) XOR (X AND NOT X+1))
行/列が存在しない場合は false と見なされます。私の試みのデモンストレーション:
Yについて:
X の場合:
これら 2 つの結果を OR します。
ご覧のとおり、出力とほぼ同じですが、COL 3、ROW 5 は 1 ではなく 0 です。そのビットを考慮して他の操作を行う方法はありますか?
前もって感謝します。
java - 独立したタスクとして実行されるボタンをプログラムで呼び出すにはどうすればよいですか?
私はJavaスイングでコンウェイのライフゲーム問題を実装しました。すべてが正常に機能しています。下のスクリーンショットでわかるように、「ティック」ボタンがクリックされるたびに、ゲームは次の生命体に進みます。今、私は「チェック」ボタンの横に「自動再生」ボタンを含めることを計画しています。この自動再生の目的は単純です。叩くと、1秒間隔でティックボタンを押しているかのように自動操作が続行されます。
これを試してみました。しかし、これは他のすべての操作をブロックしているようです。別のスレッドでこのアクションを実行するにはどうすればよいですか?小さなコードスニペットでうまくいきます。