Menu

集合啦 動物森友會 花株生成機制與優化佈局研究

Share on facebook
Share on google
Share on twitter
Share on whatsapp

作者:NilhillQ

來源:bilibili

最近,研究了遊戲源碼,已經對遊戲內新花株的生成機制有了很深的認識,以下為生成機制的描述:

每天早上5:00,遊戲會以隨機循序存取島上的每一朵花

如果花被澆水了,則這朵花的內部計數器 +1,並根據公式得到新花株的生成概率

投一個亂數骰子,如果成功,則隨機從這朵花周圍8格找一個空格,否則跳過這朵花

如果這朵花周圍8格沒有相同品種的花,則自我複製(基因完全相同)

如果這朵花周圍8格存在相同品種的花,則從中隨機選取一株,雜交

這朵花(和與它雜交的花)的內部計數器清0 ,並將它們標記為“不可用”,它們不會被後續的花選中作為雜交物件

新花株的生成概率 = 基礎概率 + 獎勵概率

基礎概率由花的內部計數器,也就是被澆水的天數決定,當澆水天數小於3時,概率為5%,當澆水天數大於3天時,每多一天,概率增加5%。


基礎概率表格

獎勵概率是為了獎勵朋友幫你澆水,以下為獎勵概率的表格


獎勵概率表格

比如,一朵花總共被澆水了5天,且這5天始終沒有產生新花株,在第5天有兩個朋友為這朵花澆水,則它在第6天它產生新花株的概率為15%+30% = 45%。根據上述機制,我編寫了一個類比程式,用於估計不同佈局的性能:

新花株的每日產量

空間效率,空間效率 = 每日產量 / 佈局面積

花朵效率,花朵效率 = 每日產量 / 花的總數

空間效率與花朵效率為佈局在兩個維度的性能指標:當你手頭有很多花,但島上的空地不夠時,應當選擇空間效率高的佈局。如果你手頭花的數量較少,但空地很多時,使用花朵效率高的佈局可以產生更多的花株。

模擬設置:

每一個佈局的模擬天數為一萬天,每一天的模擬完成後,都會鏟走新花株使佈局恢復原狀,並統計數量

佈局外側使用圍欄擋住

兩種最簡單的情形


單獨花株,只會觸發自我複製


成對花株,只會觸發雜交

根據幫忙澆水的朋友人數不同(0~5人),平均產量會有變化:

單獨花株的平均產量為 0.147 → 0.285 → 0.373 → 0.506 → 0.652 → 0.801

成對花株的平均產量為 0.196 → 0.452 → 0.587 → 0.757 → 0.873 → 0.962

為什麼成對花株比單獨花株的平均產量高一點?這是因為兩朵花相當於投了兩次亂數骰子,如果第一朵失敗了,第二朵還有成功的可能。

但是如果是想大量複製花朵,比如複製藍玫瑰,應該採取單獨花株的模式,因為這種模式的花朵效率更高,具有更高的產量。

空格較少的情形


只有中間一格是空格

這個佈局十分擁擠,只有中間一格是空地,即使沒有朋友來幫忙澆水,它的平均產量也為0.715,隨著澆水人數增加,平均產量接近1。

需要注意的一點是,這裡的產量是長期運行下的平均產量。為了達到平均產量,是需要幾天的持續澆水的。這是因為在最初的幾天裡,花的內部計數器還沒累加到一個較高的值。一般來說,一個佈局達到平均產量需要5天左右的時間來積聚能量。

下圖為此佈局前30天的平均產量曲線,比較明顯的是藍色曲線,它前5天的平均產量逐漸上升,然後在0.7附近徘徊。


前30天的平均產量曲線

複製田佈局設計

“複製田”就是要避免花的雜交,每一朵花周圍都沒有可以雜交的物件,只能觸發自我複製機制。

下面分析三種4×4大小的複製田佈局,其空間效率逐漸提升,但花朵效率逐漸下降。

注意,圖中紅色、綠色、藍色表示不同品種的花朵,他們之間不會雜交


複製田佈局1


複製田佈局2


複製田佈局3

為了方便分析,根據上述表格繪製了三種佈局的 “空間效率-花朵效率” 性能曲線。觀察這個曲線可以得到很多資訊:

每一個佈局的性能點都在穿過原點的一條射線上,隨著澆水人數的變多,其值向原點外擴散

如果佈局比較“稀疏”,性能點到原點的距離是固定比例的,比如佈局1和佈局2

如果佈局比較“擁擠”,它會逐漸收斂到“最大空間效率”處,比如佈局3,它只有1/4的空間為空地,所以它的空間效率收斂到25%。


圖中6條折線代表的是不同澆水人數下的性能比較

根據這張性能圖,我們可以挑選出空間效率最高的佈局:

如果澆水的人數為0~2人:佈局3的空間效率最高; 佈局2的空間效率比佈局1高,且具有和佈局1相近的花朵效率。推薦使用佈局2或佈局3。

如果澆水人數為3人及以上:推薦使用佈局2。

另外,佈局2可以進一步優化,讓每一朵花附近的平均空格數更多,防止新花株產生後將空格完全堵住,浪費一部分花朵的產能。


對佈局2的優化

下圖為佈局2與優化後的性能比較。

自交田佈局設計

自交這裡指的是顏色相同的同一品種的花進行雜交,我們最常用的佈局是棋盤格型佈局,3×3的棋盤格型佈局有兩種擺法,一種是x型,一種是菱形,它們之間有差異嗎?差異又有多大?


3×3菱形佈局,不會發生自我複製


3×3 X型佈局,會發生自我複製

通過上述表格可以看到,雖然X型佈局的合計產量比菱形佈局高,但是我們的目標是“自交”,而不是“複製”,X型佈局會極大提高自我複製的概率,這是因為它的四個角上的花朵都只與中間的花接觸,如果中間的花被使用過後,這四朵花將只會觸發自我複製!

總結,在使用棋盤格佈局做自交時,我們應該盡可能避免一朵花只與另一朵花接觸的情況。

棋盤格型佈局的空隙很多,所以基本不會出現浪費花朵產能的情況,但空間效率不夠高,它的佈局密度只有50%,那麼是否存在其他的佈局,擁有更高的佈局密度和空間效率呢?

下面放出各種佈局的模擬結果:


密度50%,佈局1,棋盤格型


密度50%,佈局2,平行線型


密度55.5%,佈局3


密度66.6%,佈局4,雙平行線型


密度66.6%,佈局5,斜平行線型


密度66.6%,佈局6,神社型


密度75%,佈局7


密度75%,佈局8,粗斜線型


密度75%,佈局9,六邊形型


密度75%,佈局10


密度77.7%,佈局11


密度83.3%,佈局12


密度88.8%,佈局13

對以上13種佈局繪製“空間效率-花朵效率”性能曲線,選擇盡可能靠右上角區域的佈局,就能挑選出空間效率與花朵效率之間較好權衡的佈局。

“紅圈”內的佈局是較好的佈局

總結,經過仔細觀察上圖,我從中挑選出了一些最合適的佈局,它們一般擁有更高的空間效率和與棋盤格型佈局相近的花朵效率:

當幫你澆水的人數為0人時:推薦使用佈局5,7,9,11,12

當幫你澆水的人數為1人時:推薦使用佈局5,7,9

當幫你澆水的人數為2人以上時:推薦使用佈局5,7

雜交田佈局設計

雜交這裡指的是相同品種的不同顏色花進行雜交,雜交的佈局可以設計的餘地比自交小很多,因為我們要防止相同顏色的花互相接觸,棋盤格型佈局是一種常用的雜交田佈局。

先給出最常見的3×3雜交田,不做過多解釋。

3×3 X型雜交田,當有一個朋友澆水時,第二天就會有80%概率出現雜交後代

3×3 菱形雜交田,不會出現自我複製的後代,具有非常高的花朵效率

是否存在比棋盤格型雜交田更好的佈局?答案是存在的,但是需要兩種不同品種的花,見佈局2。

8×8 棋盤格型雜交田,佈局1

使用兩種不同品種的花,佈局2


佈局1 vs 佈局2

佈局2具有更高的空間效率和花朵效率。佈局2花朵效率高的原因是它可以避免自我複製,在多人澆水時,這種優勢越發明顯。

Share on facebook
Share on google
Share on twitter
Share on whatsapp