Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
希望用Python制作一个非常简单的健康函数_Python_Python 3.x - Fatal编程技术网

希望用Python制作一个非常简单的健康函数

希望用Python制作一个非常简单的健康函数,python,python-3.x,Python,Python 3.x,让我先说一下,我对一般编程非常陌生。我已经做了大约一周了,已经成功地制作了计算器和所有的初级爵士乐,并且一直在做我的第一个真正的“项目”,这是一个基于文本的冒险游戏。我现在的问题是,我不能为我的一生建立一个非常简单的卫生系统,我想得到你们任何人可能有的任何建议 我已经为它重写了很多次代码,但以下是我一直在使用的基本框架: def healthSystem(enemy_atk = 0): # Called at the beginning of every game screen. w

让我先说一下,我对一般编程非常陌生。我已经做了大约一周了,已经成功地制作了计算器和所有的初级爵士乐,并且一直在做我的第一个真正的“项目”,这是一个基于文本的冒险游戏。我现在的问题是,我不能为我的一生建立一个非常简单的卫生系统,我想得到你们任何人可能有的任何建议

我已经为它重写了很多次代码,但以下是我一直在使用的基本框架:

def healthSystem(enemy_atk = 0):   # Called at the beginning of every game screen.
    watermark()   # A function that prints the game title and other things at the top of every screen

    max_health = 10       # Player max health
    no_health = 0         # Player dies at this threshold
    modifier = enemy_atk  # An enemy attack roll is taken from another function and stored here
    current_health = max_health - modifier   # Calculating the new health

    print("+" * current_health)   # Prints the new health to the screen, every 1 health is represented with a "+"
    print()
这是非常赤裸裸的,它在第一个游戏屏幕上工作。但是,当您进入下一个游戏屏幕时,所有内容都会重新计算,并且每次都会在屏幕上重新绘制生命值,因此您在每个屏幕上都会获得不同的生命值


这需要上课吗?我还没有使用过类,也看到过一些使用它们的例子,但我希望我能在第一个项目中坚持使用函数。谢谢大家的帮助。

看起来问题在于你想让程序在屏幕之间记住玩家的健康状况

如果是这样的话,我认为你需要函数之外的某种变量来存储玩家在攻击之间的健康状况。因为现在看起来该函数每次都将运行状况重置为10

另外,我建议对函数使用另一个参数来传递您当前的健康状况,并使用一个返回值来计算攻击后您的新健康状况

如果这是您要使用的方法,我认为您的顶级函数看起来会像这样--

#启动运行状况
我的健康=10
...
#主回路
而(不退出):
...
#更新健康状况
我的生命=健康系统(敌人的攻击,我的生命)
...

根本问题在于您根本没有跟踪健康状况<代码>当前_运行状况在函数中定义,但未返回或保存到全局或任何对象。最终,类将是最好的解决方案(可能-我自己从来没有构建过游戏),但最简单的解决方案是将
当前健康状况
作为一个参数,在函数中修改它,
最后返回当前健康状况
,并在函数外部跟踪它,直到下一个循环。

看起来我假设这个函数也在下一个屏幕中被调用,所以最好向函数
def healthSystem提供当前运行状况(敌方atk=0,当前运行状况=10):
并在函数内部修改
max\u health=current\u health
并在调用此函数的任何位置提供该函数调用中的当前运行状况作为参数欢迎使用堆栈溢出!请查看和以获取建议。@sahasrara62这不是一个好问题,因为代码不工作,CR需要工作代码。