我正在嘗試創建一個程式來在 NHL 視頻游戲中生成一個完整的隨機版本。本質上,您獲得了一個原型,并且從該原型中您可以獲得某些能力等,我試圖讓第一部分運行以選擇一個原型和一個構建。我還需要實作一種方法來處理身高、體重和提升,但我無法讓程式根據選擇的任何原型來選擇能力。這是我到目前為止的代碼,我知道它很多,我不知道這是否是執行此類操作的最簡單方法,因為我必須為構建的其他區域創建更多 if/elif 回圈,除非有更簡單更有效的方法:
import random
allbuilds = ["two way forward", "power forward", "dangler", "sniper", "enforcer", "enforcer d"]
twfabils= ["truculence", "back at ya", "big rig"]
pwfabils= ["shutdown", "quick pick", "schnipe"]
dangabils= ["ankle breaker", "one tee", "puck on string"]
snipabils= ["one tee", "snappy", "schnipe"]
enfabils= ["heatseeker", "elite edges", "medic"]
enfdabils= ["unstoppable force", "stick em up", "ice pack"]
pickrandbuild=random.choice(allbuilds)
randbuild=print(pickrandbuild)
picktwfabil=random.choice(twfabils)
pickpwfabil=random.choice(pwfabils)
pickdangabil=random.choice(dangabils)
picksnipabil=random.choice(snipabils)
pickenfabil=random.choice(enfabils)
pickenfdabil=random.choice(enfdabils)
if randbuild == "two way forward":
print(picktwfabil)
elif randbuild == "power forward":
print(pickpwfabil)
elif randbuild == "dangler":
print(pickdangabil)
elif randbuild == "sniper":
print(picksnipabil)
elif randbuild == "enforcer":
print(pickenfabil)
else:
print(pickenfdabil)
uj5u.com熱心網友回復:
如果將資料格式化為字典,則可以將編碼減少到兩行:
allbuilds = {
"two way forward": ["truculence", "back at ya", "big rig"],
"power forward": ["shutdown", "quick pick", "schnipe"],
"dangler": ["ankle breaker", "one tee", "puck on string"],
"sniper": ["one tee", "snappy", "schnipe"],
"enforcer": ["heatseeker", "elite edges", "medic"],
"enforcer d": ["unstoppable force", "stick em up", "ice pack"]
}
pickrandbuild = random.choice(list(allbuilds.keys()))
pickability = random.choice(allbuilds[pickrandbuild])
而且,正如對此答案的評論中所建議的那樣,甚至可以使用元組解包將其簡化為一行:
pickrandbuild, pickability = random.choice(list(allbuilds.items()))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/441602.html
