2017-03-29 84 views
-2

我想實施足球比賽處理,所以我花了很多時間去找到好的算法來做到這一點。我有一些數據作爲輸入 - 有一些參數的玩家。一些參數是靜態的,而匹配正在處理(技能),其中一些參數是動態的(物理狀態,心理狀態),這些參數正在變化。還有我可以手動更改的外部參數。我不需要它與真正的足球如此接近(不包括結果,20:0無論如何都會很糟糕)。最後一個主要想法是,相同的輸入不會導致相同的輸出。一些中間計算應該返回隨機值。足球(足球)比賽處理

該算法不應該很慢,因爲在不久的將來,有必要在一步步的同時處理大約1000個匹配。每個步驟將每3秒計算一次。而且這些步驟應該在邏輯上相互聯繫,因爲我會對所有球和球員的動作進行圖形比賽。

你可以爲我推薦什麼算法?我想過神經網絡,但我不確定這是一個好的解決方案。

你真的會幫助我,因爲我花了大半年的時間找到它,所以非常感謝你!

+0

你想製作一些東西,你有兩組角色,而不是遊戲只是返回結果,或者你想要更多的東西接近fifa cpu vs cpu? –

+0

@ArkadiuszRaszeja,這將是一個接近FIFA,更多的足球經理。一些參數,結果一步一步地計算,而不是一次計算。每3秒一次。現實主義不是問題,只是基本行爲(目標,傳球,盤帶,下降) – timbset

回答

0

假設你每5分鐘有一個「動作」,所以90/5 = 18動作。爲了使它更逼真,你可以選擇隨機數,如:

numberOfActions = round(10,20); 

此數字可以作爲你的lenght出現()。 比你有兩套球員的防守和進攻參數之間的相互作用。比方說,屬違法行爲,defenceB的各點產生百分之十次的機會成功:

if((TeamA.Offence-TeamB.Defence)*10 > round(0,100)) 
{ 
    TeamA.points++; 
} 

當然門將可以減少這種可能性,甚至顯著。
依此類推。當然,你可以使它更復雜。就像你可以只爲某些球員比較你的屬性,這取決於誰在控球。你在攻防兩端的參數可以被時間減少和募集的條件:

TeamA._realOffenceValue = 
    TeamA.Offence* 
    (1-i/numberOfActions)* 
    (TeamA.leftOffencePlayer.Condition); 

請記住,在遊戲中喜歡足球經理或歐陸風雲它是關於作弊玩家的一切。平衡遊戲是一項長達數小時的工作,沒有人會在論壇上爲你製作:)

+0

當然,我明白平衡是另一個問題,我不要求幫助我。我只是想知道是否存在對我有必要的算法。現在我只是隨機生成結果。它速度很快,結果接近真實,但我不能像「球員接近球門並且把球踢得太高」那樣事件顯示文字進展。我不談論2D圖形處理 – timbset