斜着落下,我实现了,但是发现移动顺序的时间不好控制,请教下大神,这个算法应该怎么做。
我先说一下我的实现。
我分了 3 层逻辑。
每一层又包括 3个逻辑
最底层是判断当前格子 能否 左/下/右移动 三个逻辑,如果能,获取移动路径
第二层是判断 移动路径数组 是否记录的移动,如果有 那么 这个格子 左/下/右 把当前位置,和最后移动到的位置坐标交换
第一层逻辑 是 扫描所有格子 格子是否能选择 ,能移动 ,如果都能,那么进入第二层逻辑,等待移动路径返回 ,如果有 那么移动本次循环返回的所有路径。结束判断 如果产生了移动,那么从新进入一次递归,直到全部无法移动为止
我用这个思路,能够完成所有格子移动到正确的地方 。但是格子移动的顺序时间不正常。求教各位有没有更好的算法,或者可以让时间正常的方式。
最开始的算法,跟这个完全不一样,最开始是 判断格子是否需要补充,然后自动往上找,3层递归,全部包在一个函数里面,然后发现扩展性很差,也可以实现格子到正确位置,然而又是时间顺序不对,扩展性也很差,又换了现在的,扩展性解决了,但是移动时间还是不对。我整了2个多星期了,卡在这个位置,求大大帮忙,第一次做完整项目,这个项目对我很重要,希望有能力的大神,帮一下我,我尽到能力最大限度了。百度了其他人讲的算法,都是垂直落下的,没有斜着的。