我正在构建一个彩色盒子,将游戏与Objective-C连接起来,并试图找出当一个盒子被错误地放在另一个盒子上时如何找到正确的位置。
查看附加图片。在图像中,您只需将左侧框向右移动一步即可连接框并获胜。
但是,如果将左框放在另一个框的顶部(图2),我想将其移动到最近的可用自由网格位置。
如果盒子是一个简单的正方形(1x1网格,2x2网格等),这将很容易,但由于盒子可能很复杂,所以更难。网格上可能还有很多方框。
任何建议都将非常感谢。
答案 0 :(得分:2)
如果您是这样的启发式新手,请采用KISS方法。
这可不容易......
用户在x,y ok?
尝试对象它不适合那里。
所以,只需向外“螺旋”,在其他可能的地方尝试。
继续尝试,直到找到合适的地方。
234
915
876
这就像“半径1”,你看到了吗?然后尝试“半径2”
等等。
就这么简单。继续尝试,直到找到一个“有效”的。
从开始位置开始向外工作,以便找到最接近的位置。