-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPython_Dungeon_game_with_Solution.py
More file actions
221 lines (156 loc) · 4.82 KB
/
Python_Dungeon_game_with_Solution.py
File metadata and controls
221 lines (156 loc) · 4.82 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# Dungeon Game
"""
Challenge 1
It would be a 2 dimensional maze game
We would put the player in a random room in the grid
We would also put a monster in a random room in the grid
We would out a door in a random room in the grid
The player would then move around the grid to find the door
Don’t let he player go out of the edges of the grid
If they hit the monster room they are eaten by the monster
or if they reach the gate they win
Grid of Room = Collection of Coordinates
Player is a tuple, it contains two values
"""
import random
CELLS = [
(0,0),(0,1),(0,2) ,
(1,0),(1,1),(1,2) ,
(2,0),(2,1),(2,2)
]
def get_location() :
# monster = random location
# door = random location
# start = random location
# if monster , door or start are the same , do it again
# return monster door and start
def move_player ( player, move ):
# player = (x,y)
# Get the players current location
# If move is LEFT y - 1
# if move is RIGHT y + 1
# IF move is UP , x - 1
# IF move is DOWN , x + 1
# return player
def get_moves ( player )
moves = ['LEFT', 'RIGHT', 'UP', 'DOWN']
# If players y == 0 remove LEFT
# If players x == 0 remove UP
# If players y == 2 remove RIGHT
# If players x == 2 remove DOWN
return MOVES
while True:
print("Welcome to my THE DUNGEON")
print ("You are currently in room {} ") # fill with player position
print ("You can move {} ") # fill int with available moves
print ("Enter QUIT to quit")
move = input( " > ")
move = move.upper()
if move == “QUIT” :
break
#if its a good move change the players position
# if it is a bad move don’t change anything
# if new player position is the door they win
# if new player position is the monster they loose
# other wise continue
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import random
CELLS = [
(0,0),(0,1),(0,2) ,
(1,0),(1,1),(1,2) ,
(2,0),(2,1),(2,2)
]
def get_location() :
# monster = random location
monster = random.choice(CELLS)
# door = random location
door = random.choice(CELLS)
# start = random location
start = random.choice(CELLS)
# if monster , door or start are the same , do it again
if monster == door or monster == start or door == start :
return get_location()
# return monster door and start
return monster, door, start
def get_moves ( player ):
moves = ['LEFT', 'RIGHT', 'UP', 'DOWN']
player = (x,y)
# If players y == 0 remove LEFT
if player[1] == 0:
moves.remove('LEFT')
# If players y == 2 remove RIGHT
if player[1] == 2:
moves.remove('RIGHT')
# If players x == 0 remove UP
if player[0] == 0:
moves.remove('UP')
# If players x == 2 remove DOWN
if player[0] == 2:
moves.remove('DOWN')
return moves
def move_player ( player, move ):
# player = (x,y)
x,y = player
# Get the players current location
# If move is LEFT y - 1
# if move is RIGHT y + 1
# IF move is UP , x - 1
# IF move is DOWN , x + 1
if move == 'LEFT':
y -= 1
elif move == 'RIGHT':
y += 1
elif move == 'UP' :
x -= 1
elif move == 'DOWN':
x += 1
return x,y
monster, door, player = get_location ()
while True:
moves = get_moves(player)
print("Welcome to my THE DUNGEON")
print ("You are currently in room {} ".format(player)) # fill with player position
print ("You can move {} ".format(moves)) # fill int with available moves
print ("Enter QUIT to quit")
move = input( " > ")
move = move.upper()
if move == "QUIT" :
break
#if its a good move change the players position
if move in moves :
player = move_player(player, move)
# if it is a bad move don’t change anything
else :
print ("Walls are hard, stop walking into it ")
continue
# if new player position is the door they win
if player == door :
print("You escaped")
break
# if new player position is the monster they loose
elif player == monster :
print ("You were eaten by the gruel monster ")
break
# other wise continue
"""
Challenge 2
Welcome message is getting printed every-time
Can we display the grid for the visual
"""
def draw_map( player ):
# Draw ASCII Map
print( " _ _ _ ")
tile = " | {}"
for idx,cell in enumerate(CELLS)
if idx in (0,2,3,4,6,7) :
if cell == player :
print ( tile.format('X'), end ='' )
else :
print ( tile.format("_", end='' )
else :
if cell == player :
print ( tile.format('X |') )
else:
print ( tile.format('_ |') )
# call this draw function in the while true loop
draw_map(player)