这里是一个演示图像:最好的算法,模拟块掉落
有与它的一些随机的红色块8×8块。当用户选择它们时,它们上面的所有块都会掉落。我想找到一个最简单的方法来模拟这种复杂性。
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++) {
if (currentBlock == blank) {
while((currentBlock.pos.x - 8) >= 0) {
aboveBlock = (currentBlock.pos.x - 8);
replace(currentBlock,aboveBlock);
}
}
但我认为这不是一个完美的算法。谁能帮我?请。非常感谢你。
请添加相关语言,因为答案可能依赖于他们。 – 2013-05-02 08:52:40
@Koushik那么,他正在寻找一种通用算法,仅此而已。他可以很容易地将其翻译成他选择的语言。如果一个答案使用了一种他不懂的语言,或者其概念没有转化为他选择的语言,那么这将是缩小搜索范围的时候。顺便问一下,你确定这是* C *,does * C *是否允许在循环头文件中使用变量声明(可能不确定)? – 2013-05-02 11:00:44
@ChristianRau是c99及以上允许这种声明。这就是为什么我这么问他(以为他可能用同样的语言)。以及C++也是一个匹配(不知道Java),并且每个人都有可能获得更好的解决方案,所以为什么建议,也有更多的人可以访问这个问题。但你是对的,他要求一个算法。如果他觉得没有必要,我会去掉标签。 – 2013-05-02 12:37:07