Python文本冒险循环

时间:2014-02-22 22:06:16

标签: python python-3.3

我在python 3.3.4中制作了一个非常简单的文本冒险游戏,并且想知道当输入与a / b不匹配时是否会有任何可能的方法使它返回到打印命令所在的位置问题是。

以下是我目前的情况:

import time
import sys
from random import randrange

text = "** Execute Long Intro **"

for c in text:
    sys.stdout.write(c)
    sys.stdout.flush()
    seconds = "0." + str(randrange(1, 2, 1))
    seconds = float(seconds)
    time.sleep(seconds)


time.sleep(1)


obj1 =input('\nDo you \na.) Rest on the ground \nb.) Find a way out of the jungle\n')
if obj1 in ('a'):
    print('You find a comfortable spot on the ground and drift into sleep...')
    time.sleep(.6)
    print('Zzz.\nZzz..\nZzz...')
    time.sleep(3)
    print('You wake to a strange noise, and work your way out of the jungle.') 
    time.sleep(1)

    print('You emerge out of the jungle and walk along the shoreline of a sunny beach')
    time.sleep(1)
    print('** Objective One Completed **')
    time.sleep(2)



elif obj1 == 'b':
    print('You manage to find a path out of the jungle and discover a beach,')
    time.sleep(1)
    print('** Objective One Completed **')
    time.sleep(2)

elif obj1 != ('a','b'):
    print('Uh.')

非常感谢帮助。

2 个答案:

答案 0 :(得分:2)

使用while循环:

obj1 = input(...)

while obj1 not in ('a', 'b'):
    obj1 = input("Invalid. Enter again: ")

if obj1 == 'a':
    ...
elif obj1 == 'b':
    ...

答案 1 :(得分:0)

您可以尝试使用blessings库。 安装它:

pip install blessings

,用法很简单:

from blessings import Terminal
term = Terminal()
print term.clear_bol
print '\t{t.yellow}action{t.normal}|{t.green}Done!{t.normal}'.format(t=term)