Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMohammad Aslam
6,053 PointsDungeon game Cartographer error in shell
Hi all, I have followed the video instructions but I am getting an error when I try to run the dungeon game. Can someone please help out! Thanks
Also, are we supposed to be able to come up with games ourselves at this stage? I can do the challenges but coming up with a game would be impossible.
Here is the error:
Traceback (most recent call last):
File "dungeon_game.py", line 100, in <module>
game_loop()
File "dungeon_game.py", line 77, in game_loop
draw_map(player)
File "dungeon_game.py", line 70, in draw_map
print(ouput, end=line_end)
NameError: name 'ouput' is not defined
Here is the code: import os import random
draw grid
pick random location for player
pick random location for exit door
pick random location for monster
draw player in the grid
take input for movement
move player, unless invalid move (past edges of grid)
check for win/loss
clear screen and redraw grid
CELLS = [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (0, 4), (1, 4), (2, 4), (3, 4), (4, 4), ]
def clear_screen(): os.system('cls' if os.name == 'nt' else 'clear')
def get_locations(): return random.sample(CELLS, 3)
def move_player(player, move): x, y = player if move == "LEFT": x -= 1 if move == "RIGHT": x += 1 if move == "UP": y -= 1 if move == "DOWN": y += 1 return x, y
def get_moves(player): moves = ["LEFT", "RIGHT", "UP", "DOWN"] x, y = player if x == 0: moves.remove("LEFT") if x == 4: moves.remove("RIGHT") if y == 0: moves.remove("UP") if y == 4: moves.remove("DOWN") return moves
def draw_map(player): print(" _"*5) tile = "|{}"
for cell in CELLS:
x, y = cell
if x < 4:
line_end = ""
if cell == player:
output = tile.format("X")
else:
output = tile.format("_")
else:
line_end = "\n"
if cell == player:
output = tile.format("X|")
else:
output = tile.format("_|")
print(ouput, end=line_end) # LINE 70!!!!! #
def game_loop(): monster, door, player = get_locations()
while True:
draw_map(player) # LINE 77!!!!! #
valid_moves = get_moves(player)
print("You're currently in room {}".format(player))
print("You can move {}".format(", ".join(valid_moves)))
print("Enter QUIT to quit")
move = input("> ")
move = move.upper()
if move == 'QUIT':
break
if move in valid_moves:
player = move_player(player, move)
else:
input("\n ** Walls are hard, dont run into them! **\n")
clear_screen()
clear_screen() print("Welcome to the dungeon!") input("Press return to start!") clear_screen() game_loop() # LINE 100!!!!#