問題タブ [redcode]
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.
assembly - RedCode の理解を助ける
ボットを作るのが楽しそうなので、レッドコードを学ぼうとしています。
序章
redcode が何であるかを知らない人のために、ここで簡単に説明します。これは ASM に似た言語ですが、はるかに簡単で無駄がありません。仮想メモリ内の他のプログラムをシャットダウンする必要がある小さなプログラムを作成するために使用されます。(詳細については、こちらを参照してください: http://vyznev.net/corewar/guide.html )
コードの一部を次に示します。
問題
基本的な戦略は、自分自身を別の場所に複製し、プロセスをフォークすることです。私が理解していないのは、このルールです:
このセリフの意味が分かりました。target の B-Field を top の B-Field が指す行に移動し、target の B-Field の値を減らします。
ループが初めて実行されるとき、最初の行は次のようになります。
私の知る限り、Loop のある行は次のことを意味します: 命令を 12 行前 (dat #0、#0 で埋められている) の 833 行に移動します。
しかし、このコードが実行されると、コード行は 839 行目に配置されます。
誰かが本当に何が起こっているのか理解していますか?
assembly - コアウォーズのインプリング
Core WarsのImp Ringについて誰か説明してくれませんか?
end
上記のコードは、プログラムの開始を示すために使用され、ラベルにコロンがないため、'88 標準のものだと思います。
プログラムは起動ラベルから始まります。このインプ リングがどのように記憶を「クロール」するかを視覚化する助けが必要です。
assembly - この RedCode MOV が機能しないのはなぜですか?
それで、私はアセンブリクラスにいて、物事を面白く保つために、隔週で Core Wars のトーナメントを開催しています。IMP をメモリ内のさらに下にコピーし、ジャンプして 2 つの IMP を同時に実行する単純なアプリケーションを作成しようとしています。アイデアは、一度この部分を機能させて、タイトなループに入れて2つ以上にすることです。
これが私のコードです:
ただし、何が起こっているかは最初のMOV
/SPL
が機能しないため、最初の IMP のみが実行されています。このロジックのどこが間違っているのでしょうか? ADDR
マジックナンバーを削除して使用すると機能します。
これは、実行を開始する前のメモリのスクリーン スニペットです。
ありがとう。
automation - CoreWars の自動化
CoreWars 用のレッドコード ウォリアーを作成するための進化的プログラムを作成する予定です。ただし、生成されたコードを、プログラムを手動で開いて Warriors を挿入せずに実行する方法がまったくわかりません。少なくとも 1 分間に数人の戦士に進化プログラムを実行してもらいたいので、あまり管理者の役割を果たす必要はありません。私は ARES シミュレーターを使用していますが、スクリプトを使用して戦士を実行するという私の研究に関しては、何も見つかりませんでした。
私は本当に次のようなものを探しています:
SomeSimulator.exe --warrior1 megalordthedestroyer.red --warrior2 tinathebabybunny.red