나는 싸우는 게임을 만들었지 만 그 피해는 무작위로 만들어지지 않습니다.파이썬 숫자가 랜덤 화되지 않습니다
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
기능에서 나는 무작위로 손상을 유지하여 각 문자에 대해 랜덤 트를 설정하고 싶습니다. 그러나 예를 들어, 전투가 시작될 드래곤과 싸우고 싶다고하자. 플레이어가 먼저 4 점 데미지를 입히면 드래곤이 먼저 2 점 데미지를 입히면 전체 전투에서 4 점과 2 점의 데미지 만받습니다. 왜 그런가요? 어떻게 해결할 수 있습니까?
도움을 주시면 미리 감사드립니다.
관련 코드 만 게시하십시오. 나는 그것이 약 1-3 라인이라고 추측한다. 그리고 당신은 당신의 현에서 어떤 간격을 놓치고있는 것처럼 보입니다. – keyser