BigSteve/PyGame/practice/textadventure/texadv.py

123 lines
5.1 KiB
Python

import json
import os
import sys
from pathlib import Path
from typing import List, Dict, Tuple
MAPDATA_FILE = os.path.join("mapdata.json")
VALID_DIRECTIONS = {
"n": "North",
"s": "South",
"e": "East",
"w": "West"
}
mapdata_raw = Path(MAPDATA_FILE).read_text()
mapdata = json.loads(mapdata_raw)
def get_room(data, room_id) -> Dict:
for room in data["rooms"]:
if room["id"] == room_id:
return room
answer = input('Would you like to play a game?(y/n)')
if answer.lower() == 'n':
print( 'Ok Maybe Some other time' )
sys.exit()
print('Welcome to the Adventure')
start = True
inventory = []
player_room = 0
name = input("Enter Your Name : ")
print("Greetings, " + name + "\n###Let's Start the Game###")
#print("""\nAs you slowly regained consciousness, you found yourself in a strange room bathed in an eerie glow.
#There are three imposing doors, each beckoning you towards a different path.
#Which door would you choose---1, 2 or 3???""")
current_room_data = get_room(mapdata, player_room)
print(f"You wake up in {current_room_data['name']}")
print(f"\n{current_room_data['discription']}")
print(f"{current_room_data['action']}")
print(f"\n{current_room_data['player']}")
door = ""
while door not in current_room_data["directions"].keys():
print("Available directions to travel: ", end='')
for direction, room_id in current_room_data['directions'].items():
print(f" {direction}", end='')
print()
door = input(">")
door = door.lower()[0:1]
if door not in VALID_DIRECTIONS.keys():
print(" You bump into a wall of your own incompetence.")
door = ""
else:
door = VALID_DIRECTIONS[door]
player_room = current_room_data["directions"][VALID_DIRECTIONS[door.lower()[0:1]]]
current_room_data = get_room(mapdata, player_room)
if(door == "1"):
print("You entered the First room and through time travelling you found yourself in a an ancient Battle")
print("By looking at the Flag of an Empire you come to knw that\nIt is the battle of Spartans")
print("You hide in the bush and finds a Sword lying on the ground")
print("What would you do???")
print("1-Pick the Sword and Run from the Battleground")
print("2-Pick the Sword and Fight for your life")
print("3-Leave it and come back to Present time without altering the timeline")
options = input(">")
if(options == "1"):
print("As you started running\nomeone from back hit you with the Arrow!\nBoom!!!You are dead.")
elif(options == "2"):
print("You started fighting from the spartans side, \nluckily you survived the battlefield and lived the rest of the life as a commander in the Army\nYou stucked in the past for the rest of your life")
elif(options == "3"):
print("You leaved the sword in its place and witnessed the ancient war.\nCame back to present time\nWith the memories of the huge Battlefield, which you can't share with anyone.\n###You Won the Game###")
else:
print("Type a Number!!!\nGAME OVER\nPLEASE RESTART the GAME")
if(door == "2"):
print("You entered the Second room and found yourself in a remote jungle with an ancient map beside you")
print("The Map contains a route leading to a treasure hidden in the forest")
print('What would you do???')
print("1-Wait for the help.")
print("2-Find for an exit on on your own.")
print("3-Take the Map.")
forest = input(">")
if(forest == "1"):
print("No one was there to help you.\nYou hide from the wild animals for a while.\nGets killed by the Wolf in the End")
elif(forest == "2"):
print("You look for an exit in jungle on your own.\nIn the pain of hunger you ate poisoned berries.\nGood job! You Died!!!")
elif(forest == "3"):
print("You followed the Map, discovered some beautiful sceneries of deep forest.\nFinally reached the treasure chest.\nYou opened the chest but it was empty")
print("You get disappointed\nAfter walking for a while.\nYou saw a river and sat near the river and relaxed.\n###You Won the Game###")
else:
print("Type a Number!!!\nGAME OVER\nPLEASE RESTART the GAME")
if (door == "3"):
print("You entered the Third room and found yourself in front of a Witch brewing Potions")
print("She ask-What are you doing here young boy?")
print("What will you answer-")
print("1-You tell her that you're lost, and want to get out of here.")
print("2-You stab her with a knife.")
print("3-You try to runway.")
witch = input(">")
if(witch == "1"):
print("She cast a spell on you and you become unconscious.")
print("She brewed you into her potion")
print("Good bye! You Died")
elif(witch == "2"):
print("You come close to her and swing your knife at her face and then stab her to death.")
print("Good job. You are free now.\nWith a tag of Murderer!!!\n###But You Won the Game###")
elif(witch == "3"):
print("She casts a spell that freezes you in place.")
print("She prisoned you in her cabin.")
print("Good job! You became her slave for the rest of your life.")
else:
print("Type a Number!!!\nGAME OVER\nPLEASE RESTART the GAME")