python - Python House Adventure - 如果您已经进入房间一次,如何提供不同的输出
问题描述
所以基本上,我正在使用 python 制作一个文本冒险游戏,目标是根据线索和谜语在房子的某个地方找到奖品。当你通过告诉程序你想去北、南、东还是西进入房子里的一个房间时,它会给你一个房间的描述,但在某些情况下,当你进入一个房间时,除了你刚从房间来,所以如果你已经进入房子里的一个房间,我想让它给你一个不同的输出。我该怎么做?
class bc:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
inventory = []
chest = "Chest"
key = "Key"
book = "Book"
picture = "Picture"
def playGame():
location = "Porch"
show_intro()
while not (location == "Exit"):
showRoom(location)
direction = str(input(bc.BOLD + bc.HEADER + "Which direction
do you want to go?: \n" + bc.ENDC))
location = pickRoom(direction, location)
def show_intro():
print(bc.BOLD + """Welcome to a game with no graphics so you get
more FPS's!
Old man Mesarosh lived here years ago before he and his wife suddenly
disappeared.
Before he died, it was said that he left behind a chest full of
treasure.
It's your job to figure out where he left it, and fast...
Police drive by every 30 minutes searching for teens exploring the
abandoned house
Find the clues left behind by Mesarosh and find where the treasure is
hidden.
Type "North", "South", "East" or "West" to decide which way to go.
Good luck! \n""" + bc.ENDC)
def pickRoom(direction, room):
while True:
if(direction == "quit") or (direction == "exit"):
print("Better luck next time!")
return "Exit"
elif room == "Porch":
if direction.lower() == "north":
return "Pantry"
elif room == "Pantry":
if direction.lower() == "north":
return "Kitchen"
elif direction.lower() == "east":
return "DiningRoom"
elif room == "DiningRoom":
if direction.lower() == "west":
return "Pantry"
elif room == "Kitchen":
if direction.lower() == "west":
return "LivingRoom"
elif direction.lower() == "east":
return "Bedroom"
elif room == "Bedroom":
if direction.lower() == "west":
return "Kitchen"
elif room == "LivingRoom":
if direction.lower() == "west":
return "Bathroom"
elif direction.lower() == "north":
return "Stairs"
elif room == "Bathroom":
if direction.lower() == "east":
return "LivingRoom"
elif room == "Stairs":
if direction.lower() == "south":
return "Bar"
elif room == "Bar":
if direction.lower() == "east":
return "Shop"
elif room == "Shop":
if direction.lower() == "north":
return "Closet"
elif direction.lower() == "south":
return "Storage"
elif room == "Storage":
if direction.lower() == "north":
return "Shop"
elif room == "Closet":
if direction.lower() == "south":
return "Shop"
def showRoom(room):
if room == "Porch": #Done
showPorch()
elif room == "Pantry": #Done
showPantry()
elif room == "Kitchen": #Done
showKitchen()
elif room == "DiningRoom": #Done
showDining()
elif room == "Bedroom": #Done
showBedroom()
elif room == "LivingRoom": #Done
showLiving()
elif room == "Bathroom": #Done
showBathroom()
elif room == "Stairs": #Done
showStairs()
elif room == "Bar": #Done
showBar()
elif room == "Shop": #Done
showShop()
elif room == "Storage": #Done
showStorage()
elif room == "Closet": #Done
showCloset()
playGame()
解决方案
进入房间后,设置一个变量。在每个房间中使用 if-else 语句检查变量的值,如果变量显示已更改为您已在此处的状态,则显示您已在此处的消息。
推荐阅读
- python - Pandas `to_sql` 通过`if_exists = 'append' 给出`Table already exists` 错误
- z3 - Z3 Python 从解决方案中排除跟踪器变量
- javascript - 播放多个视频,例如 tiktok?
- angular - Angular 代理绕过拦截所有请求,无论路径如何
- docker - 如何从 docker 中的 docker 创建的容器访问 HTTP 代理
- react-native - React Native中如何实现圆角上背景组件?
- ms-access - 需要计算报告中的特定值
- coldfusion - Coldfusion 2021 中的 SSO 是标准功能还是企业专用功能?
- azure - Azure/Databricks - 摄取数据的最佳方式?
- python - 如何输入整数?