私は1つの部屋から始めて、それに隣接する新しい部屋をランダムに再帰的に接続することによって、単純なダンジョンマップを再帰的に生成する方法を思いつきました。
マップは、各セルに0〜15の値が含まれる2次元配列として表されます。0は部屋がないことを表し、各方向は北= 1、東= 2、南= 4、西= 8で表されます。
部屋以外の1つの部屋([[0]])から始めて、必要に応じて2D配列を拡張して、生成されたマップに合わせる必要がありました。再帰のようなこのツリーで直面する問題は、マップの左と上に行と列を追加するために配列のシフトを解除する必要がある場合、関数の現在の位置、行と列を調整する必要があることです。 。これにより、別のブランチは他のブランチからの配列インデックスの調整を認識せず、調整された位置が行と列の引数として渡されるため、子関数のみがそれを認識します。
これを行う方法はありますか?再帰の外で行と列のオフセット値を保存しようとしましたが、何らかの理由で機能しませんでした。