Python多线程允许用户随时退出
我正在写一个基于文本的角色扮演游戏,使用的是Python 3.3.4。这个游戏会通过Python的命令行来玩,没有图形界面。我想让玩家无论在什么情况下,都能随时输入“exit”来退出游戏,或者输入“help”来获取帮助信息。比如说,当他们正在和某个怪物战斗时,虽然屏幕上只显示攻击、防御或逃跑的选项,但他们仍然可以输入“exit”退出游戏,或者输入“help”获取帮助。即使他们离开战斗,正在地图上移动或者和NPC(非玩家角色)对话时,也是一样的。
根据我找到的信息,启动一个线程来等待用户输入“exit”是实现这个功能的最佳方法。如果我理解错了,请告诉我!如果没错的话,请解释一下(或者给我一个指南)我该怎么做,因为我之前的想法都没有成功。
我尝试过使用线程模块和_thread,但可能没有正确实现这些功能,而且我没有代码可以展示,因为当它们不工作时我就把它们删掉了。
提前谢谢你!
2 个回答
0
回头看看这件事,我觉得自己真是个傻瓜。
正确的做法是调用一个函数,这个函数可以接收输入,然后把这些输入和不同的预期字符串或数字进行比较。
我只是想用比Stu更清楚的方式来回答这个问题。
1
你的游戏不需要在后台做任何事情,所以你不需要创建额外的线程。你的程序的主循环会监听用户的输入,执行相应的操作,然后再提示用户进行下一步操作。它的结构大概是这样的:
while True:
input = get_user_input()
if input == 'exit':
break
next_actions = modify_game_state(input)
print "You can now do: %s" % next_actions
补充一下:不要让多个线程同时接收用户输入。因为一个线程可能会抢走本该由另一个线程处理的信息。所以无论你选择什么解决方案,都不要添加一个只检查用户输入是否为“退出”的线程,除非它能读取所有的用户输入。