Python 游戏中的健康栏有问题吗
我目前正在编写一个游戏,但是,当我每次从玩家的全部生命值中减去生命值时,我希望它从剩余的生命值中减去,我已经尝试了几个玩家交换代码,但我无法让它工作Python 游戏中的健康栏有问题吗,python,python-2.7,Python,Python 2.7,我目前正在编写一个游戏,但是,当我每次从玩家的全部生命值中减去生命值时,我希望它从剩余的生命值中减去,我已经尝试了几个玩家交换代码,但我无法让它工作 import random health1=health2=100 char1='|' * (health1 / 2) char2='|' * (health2 / 2) players=[char1,char2] char1 = raw_input("Player One: ") while char1 == "": char1 =
import random
health1=health2=100
char1='|' * (health1 / 2)
char2='|' * (health2 / 2)
players=[char1,char2]
char1 = raw_input("Player One: ")
while char1 == "":
char1 = raw_input("Please enter your name: ")
char2 = raw_input("Player two: ")
while char2 == char1:
char2 = raw_input(char1 + " name is taken, please choose another name: ")
while char2 == "":
char2 = raw_input("Please enter your name: ")
print char1 + " and " + char2 + " welcome to the game."
toss = random.randint(0, 1)
if toss == 0:
print char1+" will start the game"
else:
print char2+" will start the game"
print char1,'|' * (health1 / 2),
print char2,'|' * (health2 / 2)
def magnitude(n):
if toss==0:
print char1,'|' * ((health1 /2)-(n))
magnitude(input(char1 + " select n force: "))
return
else:
print char2,'|' * ((health2 /2)-(n))
magnitude(input(char2 + " select n force: "))
return
magnitude(input("select n force: "))
我不知道你想做什么,但我会做它没有功能,只使用
而循环
import random
# ---
char1 = raw_input("Player One: ")
while char1 == "":
char1 = raw_input("Please enter your name: ")
char2 = raw_input("Player two: ")
while char2 == char1:
char2 = raw_input(char1 + " name is taken, please choose another name: ")
while char2 == "":
char2 = raw_input("Please enter your name: ")
print char1, "and", char2, "welcome to the game."
# ---
health1 = 50
health2 = 50
print char1, '|' * health1
print char2, '|' * health2
toss = random.randint(0, 1)
if toss == 0:
print char1, "will start the game"
else:
print char2, "will start the game"
# ---
while health1 > 0 and health2 > 0:
if toss == 0:
n = input(char1 + " select n force: ")
health1 -= n
print char1, '|' * health1
toos = 1 # change player
else:
n = input(char2 + " select n force: ")
health2 -= n
print char2, '|' * health2
toos = 0 # change player
# ---
if health1 > 0:
print char1, 'wins'
else:
print char2, 'wins'
或者使用列表来保持chars和Health
import random
# ---
char1 = raw_input("Player One: ")
while char1 == "":
char1 = raw_input("Please enter your name: ")
char2 = raw_input("Player two: ")
while char2 == char1:
char2 = raw_input(char1 + " name is taken, please choose another name: ")
while char2 == "":
char2 = raw_input("Please enter your name: ")
print char1, "and", char2, "welcome to the game."
chars = [char1, char2]
# ---
healths = [50, 50]
print chars[0], '|' * healths[0]
print chars[1], '|' * healths[1]
toss = random.randint(0, 1)
print chars[toss], "will start the game"
# ---
while healths[0] > 0 and healths[1] > 0:
n = input(chars[toss] + " select n force: ")
healths[toss] -= n
print chars[toss], '|' * healths[toss]
toss = (toss + 1) % 2 # change player
# ---
if healths[0] > 0:
print chars[0], 'wins'
else:
print chars[1], 'wins'
我不知道你想做什么,但我会做它没有功能,只使用而循环
import random
# ---
char1 = raw_input("Player One: ")
while char1 == "":
char1 = raw_input("Please enter your name: ")
char2 = raw_input("Player two: ")
while char2 == char1:
char2 = raw_input(char1 + " name is taken, please choose another name: ")
while char2 == "":
char2 = raw_input("Please enter your name: ")
print char1, "and", char2, "welcome to the game."
# ---
health1 = 50
health2 = 50
print char1, '|' * health1
print char2, '|' * health2
toss = random.randint(0, 1)
if toss == 0:
print char1, "will start the game"
else:
print char2, "will start the game"
# ---
while health1 > 0 and health2 > 0:
if toss == 0:
n = input(char1 + " select n force: ")
health1 -= n
print char1, '|' * health1
toos = 1 # change player
else:
n = input(char2 + " select n force: ")
health2 -= n
print char2, '|' * health2
toos = 0 # change player
# ---
if health1 > 0:
print char1, 'wins'
else:
print char2, 'wins'
或者使用列表来保持chars和Health
import random
# ---
char1 = raw_input("Player One: ")
while char1 == "":
char1 = raw_input("Please enter your name: ")
char2 = raw_input("Player two: ")
while char2 == char1:
char2 = raw_input(char1 + " name is taken, please choose another name: ")
while char2 == "":
char2 = raw_input("Please enter your name: ")
print char1, "and", char2, "welcome to the game."
chars = [char1, char2]
# ---
healths = [50, 50]
print chars[0], '|' * healths[0]
print chars[1], '|' * healths[1]
toss = random.randint(0, 1)
print chars[toss], "will start the game"
# ---
while healths[0] > 0 and healths[1] > 0:
n = input(chars[toss] + " select n force: ")
healths[toss] -= n
print chars[toss], '|' * healths[toss]
toss = (toss + 1) % 2 # change player
# ---
if healths[0] > 0:
print chars[0], 'wins'
else:
print chars[1], 'wins'
嗯,我看不到你从health1
或health2
任何地方删除。。。因此,它当然会从总体健康状况中删除…您也从来不会将n
转换为int以表示(健康1/2)-(n)
…问题可能在于您在调用magnitude()之前不更新toss
。我如何更新,我是全新的,请给我更具体一点的答案,这样我就可以理解并更改代码return
whatprint char1,“|”*((health1/2)-(n))
不会改变任何东西,因为它是一个print语句(如果我有print 2-1
你不会期望2==1
是真的),而return
本身只返回None
。这里没有更新的全局变量。@在这种情况下,我想发布的答案已经解决了OP的问题。我最初认为我可以做一些有用的事情,作为一个简单的答案,这是我的错,我建议这样做(可能会抛出global
,或者完全重写为OOP)。我已经回答了很多问题,但在这种情况下,我认为这是代表我对我认为有用的需要和我可以提供的内容的错误判断。我看不到你从health1
或health2
任何地方删除。。。因此,它当然会从总体健康状况中删除…您也从来不会将n
转换为int以表示(健康1/2)-(n)
…问题可能在于您在调用magnitude()之前不更新toss
。我如何更新,我是全新的,请给我更具体一点的答案,这样我就可以理解并更改代码return
whatprint char1,“|”*((health1/2)-(n))
不会改变任何东西,因为它是一个print语句(如果我有print 2-1
你不会期望2==1
是真的),而return
本身只返回None
。这里没有更新的全局变量。@在这种情况下,我想发布的答案已经解决了OP的问题。我最初认为我可以做一些有用的事情,作为一个简单的答案,这是我的错,我建议这样做(可能会抛出global
,或者完全重写为OOP)。我已经回答了很多问题,但在这种情况下,我认为这是代表我对所需内容和我认为有用的内容的错误判断。非常感谢你,伙计,感谢你的代码,简单易懂谢谢你,伙计,感谢你的代码,简单易懂