我最近問到的關於Python的所有問題都是針對這個項目的。我意識到我問這麼多問題的原因可能不是因爲我對Python很新穎(但我知道很多PHP),可能並不是因爲Python有一些固有的缺陷。我只能幫助明白我做的全部錯誤(Python,再次)
因此,我現在要說的是什麼項目和我目前的想法是什麼,你可以告訴我我做的全部錯了,有幾件事我需要學習,或者Python根本不適合對付這種類型的項目和語言XYZ的是在這種情況下更好的甚至可以說有一些開源項目,我可能想涉足英寸
項目
我運行一個免費回合制戰略遊戲(從整個戰爭系列中思考競選模式,但更加複雜和深入),併爲它創建一個戰鬥模擬器(再次,將全面戰爭視爲它的工作原理)。我絕對不會覺得我會像完全戰爭遊戲一樣做得好,但我確實認爲我可以自動完成目前我手動完成的一個過程。
會是什麼做
它必須考慮到大範圍的單位,裝備,訓練,天氣,地形等等等等變量。我知道這是一項艱鉅的任務,我計劃在空閒時間一次完成一件作品。我的預算爲零,但我準備投入時間(已經),這是一種愛好。
我現在的絆腳石
在PHP一切都可以訪問其他的一切,「錯了」,雖然有些人可能認爲這是對這個真的很方便。如果我有一系列設備供單位使用,我可以從任何地方獲得該陣列。使用Python時,我必須在每次導入相關數據文件時都重新創建該數組,這對於根據我的經驗深思熟慮的語言來說似乎是一個相當愚蠢的解決方案。我已經加入了一個記錄函數調用和類創建的系統(因爲我從一個非常基本的版本知道,我曾在PHP中做過一次,它會幫助很多人)和我保留的方式在一個地方的數據是將我的每個類都傳遞給我的日誌列表,對我來說,這聽起來像是一個黑客,但這是我獲得它的唯一方法。
因此,我總結我錯過了一些東西,並非常感謝任何人願意給它的見解。謝謝。
代碼樣本
這將創建編隊名單,到目前爲止,只有一個值(除了名字),但我預計增加更多關於這就是爲什麼他們是類的列表,而不僅僅是一個標準清單。這是內data.py
formations = []
formationsHash = []
def createFormations(logger):
"""This creates all the formations that will be used"""
# Standard close quarter formation, maximum number of people per square metre
formationsHash.append('Tight')
formations.append(Formation(logger, 'Tight', tightness = 1))
# Standard ranged combat formation, good people per square metre but not too cramped
formationsHash.append('Loose')
formations.append(Formation(logger, 'Loose', tightness = 0.5))
# Standard skirmishing formation, very good for moving around terrain and avoiding missile fire
formationsHash.append('Skirmish')
formations.append(Formation(logger, 'Skirmish', tightness = 0.1))
# Very unflexible but good for charges
formationsHash.append('Arrowhead')
formations.append(Formation(logger, 'Arrowhead', tightness = 1))
def getFormation(searchFor):
"""Returns the fomation object with this name"""
indexValue = formationsHash.index(searchFor)
return formations[indexValue]
發現我沒有當我需要訪問它,因爲我還沒有就得到作爲使其成爲一個代碼示例,但我預計在尋找類似的代碼以下內容:
Python
tempFormation = data.getFormation(unit.formationType)
tempTerrain = data.getTerrain(unit.currentTerrain)
unit.attackDamage = unit.attackDamage * tempTerrain.tighnessBonus(tempFormation.tightness)
該單元包含鏈接到諸如此類的東西在主列表的有關地形,形成和索引/鍵的整數。臨時變量用於縮短第三行,但從長遠來看,如果我忘記獲取一個,並且它使用的是之前的值而不正確(這就是日誌記錄派上用場的地方),可能會導致問題。
PHP
$unit->attackDamage *= $terrain[$unit->currentTerrain]->tighnessBonus($unit->currentTerrain)
單元類包含了相關的地形它是在和它在形成的指標(可能是一個字符串)。
也許這會顯示一些大規模的缺陷在我的Python的理解(6月vs PHP的3年)。
「我必須在每次導入相關數據文件時重新創建該數組」。請輸入Post code snippet。 – 2009-01-01 16:39:12
data.py創建一個數組(well,list),從另一個文件中使用這個列表,我需要導入data.py並重新制作所述列表。 – Teifion 2009-01-01 16:41:52