forked from bloominstituteoftechnology/Intro-Python-II
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadv.py
More file actions
133 lines (112 loc) · 4.96 KB
/
Copy pathadv.py
File metadata and controls
133 lines (112 loc) · 4.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
from room import Room
from player import Player
# Declare all the rooms
room = {
'outside': Room("Outside Cave Entrance",
"North of you, the cave mount beckons"),
'foyer': Room("Foyer", """Dim light filters in from the south. Dusty
passages run north and east."""),
'overlook': Room("Grand Overlook", """A steep cliff appears before you, falling
into the darkness. Ahead to the north, a light flickers in
the distance, but there is no way across the chasm."""),
'narrow': Room("Narrow Passage", """The narrow passage bends here from west
to north. The smell of gold permeates the air."""),
'treasure': Room("Treasure Chamber", """You've found the long-lost treasure
chamber! Sadly, it has already been completely emptied by
earlier adventurers. The only exit is to the south."""),
}
# Link rooms together
room['outside'].n_to = room['foyer']
room['foyer'].s_to = room['outside']
room['foyer'].n_to = room['overlook']
room['foyer'].e_to = room['narrow']
room['overlook'].s_to = room['foyer']
room['narrow'].w_to = room['foyer']
room['narrow'].n_to = room['treasure']
room['treasure'].s_to = room['narrow']
#
# Main
#
def try_direction(direction, current_room):
attribute = direction + '_to'
#to check if rhe direction is one where player can move
if hasattr(current_room, attribute):
#fetch the new room
return getattr(current_room, attribute)
print(room['outside'])
# Make a new player object that is currently in the 'outside' room.
player_name = input("Enter your name : ")
game_player = Player(player_name, room['outside'])
# Write a loop that:
#
# * Prints the current room name
# * Prints the current description (the textwrap module might be useful here).
# * Waits for user input and decides what to do.
#
print("\n\t\t**** WELCOME ****")
while True:
print('''\n\t\tHint to move : "{}"
Keep moving around
Press n : North direction
s : South direction
e : East direction
w : west direction
q : Quit'''.format(room['outside']))
player_direction = input().lower()
a = ['n','s','e','w','q']
if player_direction in a:
if player_direction == 'q':
print("\n\n\tThanks for playing!\n")
break
# else:
# game_player.location = try_direction(player_direction, game_player.location)
# if game_player.location != None:
# print(f'You are at {game_player.location.room_name} \nNext Hint to move : {game_player.location.room_description}')
# print("Enter next direction : ")
# player_direction = input().lower()
# else:
# print("NO PATH FOUND IN THIS DIRECTION.. \nFOLLOW THE HINT")
# player_direction = input().lower()
elif player_direction == 'n':
game_player.location = try_direction(player_direction, game_player.location)
print(f'You are at {game_player.location.room_name} \nNext Hint to move : {game_player.location.room_description}')
print("Enter next direction : ")
player_direction = input().lower()
if player_direction == 'e':
game_player.location = try_direction(player_direction, game_player.location)
print(game_player.location)
print(f'You are at {game_player.location.room_name} \nNext Hint to move : {game_player.location.room_description}')
print("Enter next direction : ")
player_direction = input().lower()
if player_direction == 'n':
print("WOW!! {}".format(room['treasure']))
print("\nWant to Continue...(Y/N)")
choice = input().lower()
if choice == 'y':
continue
else:
print("TRY NEXT TIME..")
break
elif player_direction == 'w':
print("OOPS Follow the HINT : {}".format(room['narrow']))
print("Keep Trying : ")
player_direction = input()
if player_direction == 'n':
print("WOW!! {}".format(room['treasure']))
print("\nWant to Continue...(Y/N)")
choice = input().lower()
if choice == 'y':
continue
else:
print("TRY NEXT TIME..")
break
else:
print("BAD LUCk ... TRY AGAIN")
continue
else:
print("\tPlease enter ['n','s','e','w' OR 'q to Quit]")
continue
# If the user enters a cardinal direction, attempt to move to the room there.
# Print an error message if the movement isn't allowed.
#
# If the user enters "q", quit the game.