emu8086 を使用してアセンブリ プログラムに取り組んでいます。このプログラムは、組み込みのロボット デバイスを使用して、シミュレートされた 6x9 マップ上で仮想ロボットをエミュレートします。マップには未知数の壁とランプ (点灯/消灯) が含まれており、ロボットはマップを横断し、点灯していないすべてのランプを見つけて点灯させます。ロボット自体は、ロボットが向いている隣接する正方形からのみデータを取得でき、90 度回転することもできます。このプロジェクトは、左上隅が座標系 (0,0) の原点になることを示唆しています。
ロボットを自分のコードに接続してデータを移動および検査する方法は理解していますが、無限ループや行き止まりに陥ることなく、マップ全体を効率的に移動してすべてのランプを確認する方法がわかりません。
幅優先検索アルゴリズムや深さ優先検索アルゴリズムなど、いくつかの検索アルゴリズムの使用について読んだことがありますが、そのような概念をアセンブリに実装する方法がわかりません (ほとんどの例/擬似コードは c++/c#/etc で記述されているため)。 )。
特定のコーディングを求めているわけではありませんが、これらの検索機能を実装する方法についての洞察を求めています。問題は座標系の原点に言及しているため、特定の座標でオブジェクトの値を取得する 2 次元配列を作成しました。問題にとって配列がどれほど重要かはわかりませんが、助けていただければ幸いです。