zork/main.py

38 lines
1.1 KiB
Python

import json
from rich import print
# dictionary of the rooms
with open("zork1.rooms.json") as fp:
rooms = {room["Name"]: room for room in json.load(fp)}
# game starts here
current_room = rooms["WEST-OF-HOUSE"]
while True:
# game loop
print("")
print(
"[bold magenta]"
+ "".join(current_room["Properties"]["DESC"])
+ "[/bold magenta]"
)
current_room_props = current_room["Properties"]
print("".join(current_room_props.get("LDESC", "")))
print(", ".join(current_room["Exits"].keys()))
while True:
# user input
direction = input("Enter direction (see above): ").upper().strip()
if direction in current_room["Exits"]:
# NEXIT, UEXIT, CEXIT, BREXIT
exit = current_room["Exits"][direction]
exit_type = exit["TYPE"]
if exit_type == "NEXIT":
print(exit["MESSAGE"])
elif exit_type in ["UEXIT", "CEXIT", "DEXIT"]:
current_room = rooms[current_room["Exits"][direction]["TO"]]
break
else:
print("You can't do that!\n")