我需要做 5 项中最好的 3 项,但我无法获得 return 分数的代码,我该怎么办?
I need to do the best 3 out of 5 but I can't get the code to return a score, what should I do?
为了详细说明我的要求,我需要制作一个计数器,让我可以通过 3/5 比赛来决定两个对手的获胜者(基本上是剪刀石头布游戏)。我将代码设置为 return 获胜者得分 +1,但无论谁获胜,结果都是 0/0,而且我不知道如何解决我遇到的任何问题。
# Pkemon python 2.7.11
import random
# pokemon list / attack
pokemon = ["pikachu", "Squirtle", "Arbok", "Butterfree", "Ekans", "Spearow","Xerneas","Zygarde","Timburr","Kangaskhan","Buizel","Abomasnow","Bergmite","Braviary","Burmy","Chandelure","Cofagrigus","Crawdaunt","Conkeldurr","Crustle","Cryogonal","Darkrai","Dewgong","Dragonite","Dunsparce","Dwebble","Empoleon","Foongus","Gardevoir"]
# important things
def select_random(pokemon):
pokepick = random.choice(pokemon)
return pokepick
#the attacks
Attack = ["Air", "Water", "Grass"]
# Score/attack
def poke_score():
score = random.choice(Attack)
return score
# things
user_poke = select_random(pokemon)
enemy_poke = select_random(pokemon)
enemy_score = poke_score()
#staging
print "5 matches Best 3 out of 5"
print user_poke,"Vs.",enemy_poke
print "Select Attack"
# user select attack
def make_score():
score = raw_input("Air Water or Grass")
return score
user_score = make_score()
# outputs and battle sequence
def battle():
etal = 0
utal = 0
print "current score", utal,"/",etal
if user_score == "Air" and enemy_score == "Grass":
etal = etal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, enemy_poke, "Match Won!"
return etal
elif user_score == "Grass" and enemy_score == "Water":
etal = etal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, enemy_poke, "Match Won!"
return etal
elif user_score == "Water" and enemy_score == "Air":
etal = etal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, enemy_poke, "Match Won!"
return etal
elif user_score == enemy_score:
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, "Match was a Tie!!"
# forfeits match if no attack or incorrect attack is given
elif user_score != "Air" "Water" "Grass":
etal = etal + 1
print user_poke, "Forfeits!", enemy_poke, "Wins!"
return etal
else:
utal = utal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, user_poke, "Match Won!"
return utal
battle()
实际上,在为每个打印结构添加括号并替换一些语句后,您的代码对我来说效果很好...
Demo(已更新)
为了详细说明我的要求,我需要制作一个计数器,让我可以通过 3/5 比赛来决定两个对手的获胜者(基本上是剪刀石头布游戏)。我将代码设置为 return 获胜者得分 +1,但无论谁获胜,结果都是 0/0,而且我不知道如何解决我遇到的任何问题。
# Pkemon python 2.7.11
import random
# pokemon list / attack
pokemon = ["pikachu", "Squirtle", "Arbok", "Butterfree", "Ekans", "Spearow","Xerneas","Zygarde","Timburr","Kangaskhan","Buizel","Abomasnow","Bergmite","Braviary","Burmy","Chandelure","Cofagrigus","Crawdaunt","Conkeldurr","Crustle","Cryogonal","Darkrai","Dewgong","Dragonite","Dunsparce","Dwebble","Empoleon","Foongus","Gardevoir"]
# important things
def select_random(pokemon):
pokepick = random.choice(pokemon)
return pokepick
#the attacks
Attack = ["Air", "Water", "Grass"]
# Score/attack
def poke_score():
score = random.choice(Attack)
return score
# things
user_poke = select_random(pokemon)
enemy_poke = select_random(pokemon)
enemy_score = poke_score()
#staging
print "5 matches Best 3 out of 5"
print user_poke,"Vs.",enemy_poke
print "Select Attack"
# user select attack
def make_score():
score = raw_input("Air Water or Grass")
return score
user_score = make_score()
# outputs and battle sequence
def battle():
etal = 0
utal = 0
print "current score", utal,"/",etal
if user_score == "Air" and enemy_score == "Grass":
etal = etal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, enemy_poke, "Match Won!"
return etal
elif user_score == "Grass" and enemy_score == "Water":
etal = etal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, enemy_poke, "Match Won!"
return etal
elif user_score == "Water" and enemy_score == "Air":
etal = etal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, enemy_poke, "Match Won!"
return etal
elif user_score == enemy_score:
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, "Match was a Tie!!"
# forfeits match if no attack or incorrect attack is given
elif user_score != "Air" "Water" "Grass":
etal = etal + 1
print user_poke, "Forfeits!", enemy_poke, "Wins!"
return etal
else:
utal = utal + 1
print enemy_poke, "used", enemy_score, user_poke, "used", user_score, user_poke, "Match Won!"
return utal
battle()
实际上,在为每个打印结构添加括号并替换一些语句后,您的代码对我来说效果很好...
Demo(已更新)