我一直在做一个格斗游戏,但伤害不会随机化。你知道吗
from random import randint
import time
#playerHealth = 20
#trollHealth = 10
#dragonHealth = 15
#playerDamage = randint(0,5)
#trollDamage = randint(0,4)
#dragonDamage = randint(0,7)
#slay = True
#######Variables.
#print("""Random fight""")
def fight(enemy):
playerH = 20
trollH = 10
dragonH = 15
playerD = randint(0,5)
trollD = randint(0,4)
dragonD = randint(0,7)
slay = True
if enemy == "troll":
enemyH = trollH
enemyD = trollD
elif enemy == "dragon":
enemyH = dragonH
enemyD = dragonD
else:
print("Invalid")
print"You are fighting a ", enemy
while slay:
print"Your health:",playerH
print"Enemy health:",enemyH
time.sleep(1)
#########When player is attacking###########################
if playerD == 5 or playerD == 4:
print"You deal",playerD,"damage points. A critical hit!"
time.sleep(1)
enemyH = enemyH - playerD
print"The",enemy,"has",enemyH,"health points remaining."
time.sleep(1)
elif playerD == 0:
print"You missed and deal 0 damage points."
time.sleep(1)
enemyH = enemyH - playerD
print"The enemy has",enemyH,"health points remaining."
time.sleep(1)
else:
print"You deal",playerD,"damage points."
time.sleep(1)
enemyH = enemyH - playerD
print"The enemy has ", enemyH, "health points remaining."
time.sleep(1)
#############################################################
########When troll is attacking##############################
if enemy == "troll":
if enemyD == 4:
print"The troll deals 4 damage points. A critical hit!"
time.sleep(1)
playerH = playerH - enemyD
print"You have",playerH,"health points remaining."
time.sleep(1)
elif enemyD == 0:
print"The troll missed and deals 0 damage points."
time.sleep(1)
playerH = playerH - enemyD
print"You have",playerH,"health points remaining."
time.sleep(1)
else:
print"The troll deals",enemyD,"damage points."
time.sleep(1)
playerH = playerH - enemyD
print"You have",playerH,"health points remaining."
time.sleep(1)
##############################################################
##########When dragon is attacking############################
if enemy == "dragon":
if enemyD == 6 or enemyD == 7:
print"The dragon deals",enemyD,"damage points. A critical hit!"
time.sleep(1)
playerH = playerH - enemyD
print"You have",playerH,"health points remaining."
time.sleep(1)
elif enemyD == 0:
print"The dragon missed deals 0 points of damage."
time.sleep(1)
playerH = playerH - enemyD
print"You have",playerH,"health points remaining."
time.sleep(1)
else:
print"The dragon deals",enemyD,"damage points."
time.sleep(1)
playerH = playerH - enemyD
print"You have",playerH,"health points remaining."
time.sleep(1)
###############################################################
if enemyH == 0:
slay = False
print("You won the battle!")
elif playerH == 0:
slay = False
print("You lost the battle. Better luck next time.")
##############################End of function##################################
#########Begining of game############################
enemyTest = True
print("Prepare yourself for battle.")
time.sleep(1)
while enemyTest:
enemy = raw_input("Would you like to fight a 'dragon' or a 'troll'? ")
enemy = enemy.lower()
if enemy == "troll" or enemy == "dragon":
enemyTest = False
else:
print("Invalid.")
time.sleep(1)
if enemy == "troll":
fight(enemy)
elif enemy == "dragon":
fight(enemy)
else:
print("Restart the program.")
time.sleep(3)
#To fix:
#Enemy still attacks after death(test for death after each attack. Function?
#Damage doesn't vary
#Speed too fast at parts
在函数中,我希望它保持随机伤害,所以我为每个角色设置一个randint。但是,比如说我想和一条龙战斗,战斗就开始了,如果玩家先造成4点伤害,龙先造成2点伤害,那么在整个战斗中他们只会造成4点和2点伤害。为什么?我该怎么修?你知道吗
提前谢谢你能给我的任何帮助。你知道吗
你可以用这一行选择伤害金额:
然后在之后的几行进入循环:
之后你再也不会造成伤害,所以它永远不会改变。你知道吗
基本上,你在开始玩之前先掷骰子,然后把它放在桌子上,每次你想要一个新的数字时都会瞥一眼。在游戏过程中,你需要把它捡起来再掷一次,也就是说,在循环中选择一个新的随机数。你知道吗
我有点想起this xkcd comic。你知道吗
在以下函数中指定randint值:
然后输入
while slay loop
,这样循环中的值就不会改变。 您需要在循环中设置randint
值。你知道吗相关问题 更多 >
编程相关推荐