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 trial

Python

Dungeon Game - Movement

Not sure what is wrong with my code, but I have spend over an hour trying to fix it and still no luck.

<p>
import os
import random

CELLS = [(0, 0), (1, 0), (2, 0), (3, 0), (4, 1),
         (0, 1), (1, 1), (2, 1), (3, 1), (4, 2),
         (0, 2), (1, 2), (2, 2), (3, 2), (4, 3),
         (0, 3), (1, 3), (2, 3), (3, 3), (4, 4)]

def clear_screen():
    os.system('cls' if os.name == 'nt' else 'clear')

def get_locations():
    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


monster, door, player = get_locations()

while True:
    valid_moves = get_moves(player)
    clear_screen()
    print("Welcome to the dungeon!")
    print("You're currently in room {}".format(player)) #fill with player position
    print("You can move {}".format(", ".join(valid_moves))) # fill with available 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:
        print("\n ** Walls are hard! Don't run into them! **\n")
        continue </p>
Steven Parker
Steven Parker
229,786 Points

Instructions for formatting your code to display properly can be found in the Markdown Cheatsheet down below the "Add an Answer" area. :arrow_heading_down"

1 Answer

Alx Ki
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Alx Ki
Python Web Development Techdegree Graduate 14,822 Points

Hi, Jacky Joa !

You want to get monster, door and player from get_locations():

monster, door, player = get_locations()

But look, what your actual get_locations() RETURNS.

Does it help?