python - 如何从 Python 3 中的循环函数返回
问题描述
我正在开发一款 RPG 风格的游戏,目前正在开发库存。我没有使用任何引擎,例如 PyGame,而是使用键盘、操作系统和时间。物品栏的工作方式是它对光标所在的每个地方都有不同的功能,如果你按向上和向下箭头键,它将运行与它所在的地方相对应的功能,这样光标就会变成那里。请注意,这是为 Windows 10 编写的。
import time
import os
import keyboard
def screenclear():
os.system('cls')
def inventory():
def menu():
def weaponschoice():
global choice
global realchoice
choice = 'weapons'
screenclear()
print(' >WEAPONS<')
print(' ARMOUR')
print(' ITEMS')
print(' BACK')
time.sleep(0.1)
while True:
if keyboard.is_pressed('up'):
backchoice()
if keyboard.is_pressed('down'):
armourchoice()
elif keyboard.is_pressed('z'):
realchoice = choice
elif keyboard.is_pressed('x'):
realchoice = 'back'
def armourchoice():
global choice
global realchoice
choice = 'armour'
screenclear()
print(' WEAPONS')
print(' >ARMOUR<')
print(' ITEMS')
print(' BACK')
time.sleep(0.1)
while True:
if keyboard.is_pressed('up'):
weaponschoice()
if keyboard.is_pressed('down'):
itemschoice()
elif keyboard.is_pressed('z'):
realchoice = choice
elif keyboard.is_pressed('x'):
realchoice = 'back'
def itemschoice():
global choice
global realchoice
choice = 'items'
screenclear()
print(' WEAPONS')
print(' ARMOUR')
print(' >ITEMS<')
print(' BACK')
time.sleep(0.1)
while True:
if keyboard.is_pressed('up'):
armourchoice()
if keyboard.is_pressed('down'):
backchoice()
elif keyboard.is_pressed('z'):
realchoice = choice
elif keyboard.is_pressed('x'):
realchoice = 'back'
def backchoice():
global choice
global realchoice
choice = 'back'
screenclear()
print(' WEAPONS')
print(' ARMOUR')
print(' ITEMS')
print(' >BACK<')
time.sleep(0.1)
while True:
if keyboard.is_pressed('up'):
itemschoice()
if keyboard.is_pressed('down'):
weaponschoice()
elif keyboard.is_pressed('z'):
realchoice = choice
elif keyboard.is_pressed('x'):
realchoice = 'back'
weaponschoice()
exec(realchoice + '()')
将来我将添加诸如weapons()
、armour()
、items()
和之类的函数back()
,但我意识到我必须从随机数量的重复函数中返回。我怎么做?
解决方案
您应该添加一个基本条件以在满足条件时停止函数......或者您可以通过调用内置模块(sys.setrecursionlimit(5)来设置递归限制。)
推荐阅读
- python - Python,Faker数据不生成
- amazon-web-services - 带有 CloudFormation 的 AWS Cognito - 架构属性上的 InvalidParameterException
- c# - 字符串 '10/8/2020' 未被识别为有效的日期时间
- python - 'LpAffineExpression' 对象在纸浆 Lp 问题中没有属性 'solve' - 优化
- javascript - 无法使用简单对等体通过 RTC 数据通道发送数据
- django - Django 将有效对象显示为 NoneType
- mql4 - 如何在 mql4 中访问 MACD 值和信号(均为 2 个数据)
- html - 字体真棒图标显示不正确
- reactjs - 使用非重复荧光笔查找字符串的正则表达式帮助
- typescript - 错误 TS5014:无法解析文件“tsconfig.json”:位置 57 的 JSON 中的意外令牌/