首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python上将变量限制为零

如何在python上将变量限制为零
EN

Stack Overflow用户
提问于 2019-11-27 04:32:37
回答 1查看 203关注 0票数 1

我已经开始在python上制作一个新游戏,如果player1或player2的生命值降到零或更低,代码就会结束,但我不想在结束时显示玩家的生命值是-12。代码如下:

代码语言:javascript
运行
复制
player1 = 50
player2 = 50
while player1 >= 0 or player2 >= 0:
    import random

    slash = random.randint(5, 9)
    stab = random.randint(1, 15)
    swing = random.randint(15, 20)
    heal = random.randint(10, 15)
    a = [slash, stab, swing]
    ai = random.choice(a)
    hit1 = input("Press 1 2 3 or 4")
    if hit1 == "1":
        print("You dealt " + str(slash))
        player2 = player2 - slash
        print("Player 2 now has " + str(player2))
    if hit1 == "2":
        print("You dealt " + str(stab))
        player2 = player2 - stab
        print("Player 2 now has " + str(player2))
    if hit1 == "3":
        print("You dealt " + str(swing))
        player2 = player2 - swing
        print("Player 2 now has " + str(player2))
    if hit1 == "4":
        print("You healed by " + str(heal))
        player2 = player1 + heal
        print("Player 1 now has " + str(player1))
    hit2 = print("player 2 has dealt " + str(ai))
    player1 = player1 - ai
    print("player1 is now on " +str(player1))
EN

回答 1

Stack Overflow用户

发布于 2019-11-27 04:36:03

您可以在python中使用max函数。

对于您的相关行:

代码语言:javascript
运行
复制
 player2 = max(player2 - slash, 0)

 player2 = max(player2 - stab, 0)

 player2 = max(player2 - swing, 0)

 player1 = max(player1 - ai, 0)

此外,你需要改变你的while条件:

代码语言:javascript
运行
复制
while player1 > 0 or player2 > 0:

编辑

代码语言:javascript
运行
复制
player1 = 50
player2 = 50
while player1 > 0 and player2 > 0:
    import random

    slash = random.randint(5, 9)
    stab = random.randint(1, 15)
    swing = random.randint(15, 20)
    heal = random.randint(10, 15)

    hit_number_to_hit_type = {'1': slash,
                              '2': stab,
                              '3': swing}
    a = [slash, stab, swing]
    ai = random.choice(a)
    hit1 = input("Press 1 2 3 or 4\n")
    if "1" <= hit1 <= "3":
        hit = hit_number_to_hit_type[hit1]
        print("You dealt " + str(hit))
        player2 = max(player2 - hit, 0)
        print("Player 2 now has " + str(player2))
    if hit1 == "4":
        print("You healed by " + str(heal))
        player1 += heal
        print("Player 1 now has " + str(player1))
    hit2 = print("player 2 has dealt " + str(ai))
    player1 = max(player1 - ai, 0)
    print("player1 is now on " + str(player1))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59058940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档