タイトルが適切ではありません。読み進めてください (これ以上のタイトルは見つかりませんでした)。
注: Python 2.7 を使用していますが、アルゴリズムも役に立ちます。
私は、その場で障害物を生成している横スクロール ゲームを作成しています。私が抱えている問題は、障害物を生成する方法を理解することです。o_O
ある種のロジックがありますが、ロジック全体を理解するのに苦労しています。
実装の観点から見た私の問題は次のとおり
です。すべての長方形である をSurface
いくつか入れました。
次のように考えてください。Element
0 0 0 0 0 0 0
0 0 0 0 1 1 0
0 0 0 0 1 1 0
0 0 0 0 1 1 0
0 0 0 0 0 0 0
0 1 1 0 0 1 1
0 0 0 0 0 1 1
上記の構造のように、axb
(1 の) 別の四角形をオーバーラップせずに四角形を追加できるかどうか、およびすべての場所をどのように判断できますか。また、他のすべてのオブジェクトから x 要素 (対角線上であっても) の距離を維持すると、長方形全体が (x+3, x+4) になります。ifx=1, a=3, b=4
のように、可能な配置は 1 つだけです:
(2 は新しいオブジェクトを表します)
2 2 2 0 0 0 0
2 2 2 0 1 1 0
2 2 2 0 1 1 0
2 2 2 0 1 1 0
0 0 0 0 0 0 0
0 1 1 0 0 1 1
0 0 0 0 0 1 1
基本的に、すべての点を見つける必要があります。そこから四角形の辺a
がb
でき、たとえば左上隅になる可能性があります。これはどのように達成されますか?
注: その場で障害物を生成するためのより良いアイデアをお待ちしています!
PS: 両方のサイトで話題になっていると思うので、ここと Programmers で質問しました。