當前位置:編程學習大全網 - 編程語言 - 憤怒的小鳥的關卡如何保證有解?怎麽確定最優解?

憤怒的小鳥的關卡如何保證有解?怎麽確定最優解?

憤怒的小鳥的關卡如何保證有解?

身邊有幾個人都將所有關卡都拿到3星,實驗證明解是壹定有的。

怎麽確定最優解?

我有幾個方案,但壹直沒有機會去嘗試。如果您有更好的方案或是嘗試了以下的某壹種方法,請壹定第壹時間通知我哦!

系統分析:

由於每壹個關卡的小鳥類型,建築結構等都不壹樣,每壹個關卡都是壹個獨立的系統,不存在壹個對所有關卡都適用的***同解。

從系統的角度分析,輸入這個系統的是手指(或鼠標)在釋放前的位置,以及壹些小鳥使用特技的位置,輸出的是得分。

釋放的位置提供了兩個參數,壹個是水平角度θ,另壹個是沿彈弓皮筋方向上的位移r。(就是以小鳥初始位置為原點的,對該位置的極坐標描述)

使用特技的位置,其實僅僅由距離釋放時刻的時間差決定,所以第三個輸入參數就是這個時間差t.

假設有n只小鳥,系統可以量化為:

由於這個系統是非線性的,所以壹點的偏差之後的結果可以截然不同(蝴蝶效應)。

上面其實都是廢話。。。 關鍵問題在於系統內部是對我們是未知的。

通過解決這個未知可有以下兩個方案:

方案壹:查看源碼,得出它背後的公式,然後再對每壹個關卡建模寫方程,最後求解(八成是要用數值方法求解的)

方案二:對每壹個關卡運行多次,收集數據,作曲線擬合得出經驗公式。

如此分析這個遊戲,想必妳已經覺得我很蛋疼了(我也覺得自己蛋疼),利用上面兩種方案就更2了,建議您也不要嘗試,價值不大,除非您真的非常感興趣。

但是,世界上不是所有問題必須已知才可以被解決的。如何避開這個未知的系統解決這個最優解的問題呢?以下兩個方案都是比較可行的,但是您得會編程。

方案三:窮舉法。窮舉 ? (θ1,r1,t1,θ2,r2,t2,...,θn,rn,tn),然後仿真,最大分值的解就是最優解。(對於壹兩個鳥就可以搞定的這個可以考慮)

  • 上一篇:孩子的動手能力竟然跟哪些有關系,尤其是第壹個,要特別重視?
  • 下一篇:學會JAVA編程可以做什麽 工作
  • copyright 2024編程學習大全網