愤怒的小鸟的关卡如何保证有解?怎么确定最优解?
愤怒的小鸟的关卡如何保证有解?
身边有几个人都将所有关卡都拿到3星,实验证明解是一定有的。
怎么确定最优解?
我有几个方案,但一直没有机会去尝试。如果您有更好的方案或是尝试了以下的某一种方法,请一定第一时间通知我哦!
系统分析:
由于每一个关卡的小鸟类型,建筑结构等都不一样,每一个关卡都是一个独立的系统,不存在一个对所有关卡都适用的共同解。
从系统的角度分析,输入这个系统的是手指(或鼠标)在释放前的位置,以及一些小鸟使用特技的位置,输出的是得分。
释放的位置提供了两个参数,一个是水平角度θ,另一个是沿弹弓皮筋方向上的位移r。(就是以小鸟初始位置为原点的,对该位置的极坐标描述)
使用特技的位置,其实仅仅由距离释放时刻的时间差决定,所以第三个输入参数就是这个时间差t.
假设有n只小鸟,系统可以量化为:
由于这个系统是非线性的,所以一点的偏差之后的结果可以截然不同(蝴蝶效应)。
上面其实都是废话。。。 关键问题在于系统内部是对我们是未知的。
通过解决这个未知可有以下两个方案:
方案一:查看源码,得出它背后的公式,然后再对每一个关卡建模写方程,最后求解(八成是要用数值方法求解的)
方案二:对每一个关卡运行多次,收集数据,作曲线拟合得出经验公式。
如此分析这个游戏,想必你已经觉得我很蛋疼了(我也觉得自己蛋疼),利用上面两种方案就更2了,建议您也不要尝试,价值不大,除非您真的非常感兴趣。
但是,世界上不是所有问题必须已知才可以被解决的。如何避开这个未知的系统解决这个最优解的问题呢?以下两个方案都是比较可行的,但是您得会编程。
方案三:穷举法。穷举 (θ1,r1,t1,θ2,r2,t2,...,θn,rn,tn),然后仿真,最大分值的解就是最优解。(对于一两个鸟就可以搞定的这个可以考虑)