38 lines
1.1 KiB
Python
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")
|