Add a few different functional features to the code, you are not allowed to use imports. When added new cells you must use one of these "🟥 🟧 🟨  🟪 🟫 " to fit the theme. Maps should be able to be finished successfully. The more is not the merrier if the features are bunk.

# --- DRAFT 1 ---
# This is a first pass to get all the logic down.
# --- Constants for our tiles ---
WALL = "⬛"
EMPTY = "⬜"
PLAYER = "🟦"
GOAL = "🟩"
# --- The Map Data (A list of lists) ---
map_data = [
    [WALL, WALL, WALL, WALL, WALL, WALL],
    [WALL, PLAYER, WALL, EMPTY, GOAL, WALL],
    [WALL, EMPTY, WALL, EMPTY, WALL, WALL],
    [WALL, EMPTY, WALL, EMPTY, EMPTY, WALL],
    [WALL, EMPTY, WALL, WALL, EMPTY, WALL],
    [WALL, EMPTY, EMPTY, EMPTY, EMPTY, WALL],
    [WALL, WALL, WALL, WALL, WALL, WALL],
]
def print_map(current_map):
    """Takes a list of lists and prints it as a clean grid."""
    print("\n" * 35) # A simple way to "clear" the screen
    for row in current_map:
        print("".join(row))
    print("\n")
def find_player(current_map):
    """Searches the map to find the row and column of the PLAYER tile."""
    for row_index, row_content in enumerate(current_map):
        for col_index, tile in enumerate(row_content):
            if tile == PLAYER:
                return (row_index, col_index)
    return (None, None)
# --- The Main Game Loop ---
while True:
    # 1. Display the current state of the game
    print_map(map_data)
    # 2. Find the player's current position
    player_row, player_col = find_player(map_data)
    # This is our win condition check. If find_player returns (None, None),
    # it means the PLAYER tile is gone, which only happens when they win.
    if player_row is None:
        print("Victory, you made it!")
        break # Exit the while loop
    # 3. Get user input
    # .upper() makes 'w' the same as 'W'. .strip() removes accidental spaces.
    move = input("Enter a move (W/A/S/D): ").upper().strip()
    # 4. Determine the coordinates of the target destination
    next_row, next_col = player_row, player_col
    if move == "W":
        next_row -= 1 # Move up
    elif move == "S":
        next_row += 1 # Move down
    elif move == "A":
        next_col -= 1 # Move left
    elif move == "D":
        next_col += 1 # Move right
    else:
        print("Invalid input! Please use W, A, S, or D.")
        input("Press Enter to continue...") # Pause so the user can read
        continue # Skip the rest of this loop and start from the top
    # 5. Check the destination tile
    destination_tile = map_data[next_row][next_col]
    if destination_tile == WALL:
        print("You can't move into a wall!")
        input("Press Enter to continue...")
        continue # Skip and ask for input again
    # 6. If the move is valid, update the map
    elif destination_tile == GOAL:
        # The player wins! Replace their old spot with an empty tile.
        map_data[player_row][player_col] = EMPTY
        # Remove the goal tile to trigger the win condition on the next loop.
        map_data[next_row][next_col] = EMPTY # This makes the goal disappear
    else: # The destination is an EMPTY tile
        # Move the player to the new spot
        map_data[next_row][next_col] = PLAYER
        # Make the player's old spot empty
        map_data[player_row][player_col] = EMPTY