在2D迷宫Python上显示用户位置

2024-05-20 15:45:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个任务,我必须打印一个迷宫,也提供用户的位置。但是,此位置可以依赖于从另一个函数生成的位置。我的意思是这个职位有很多不同的可能性。在

我尝试将切片与.replace方法结合使用,以便能够将字符更改为用户的符号“a”的位置。在

看看下面的代码,我是不是做错了什么?在

def print_maze(maze, position):
"""
Returns maze string from text file and position of the player

print_maze(str, int) -> object
"""

p1 = position[0]
p2 = position[1]
position = position_to_index((p1,p2), len(maze))

for line in maze:
    maze = maze[:position].replace(' ', 'A') + maze[position:]

    for line in maze:
        maze.strip().split('\n')

print(maze)

到目前为止,我得到的结果是:

^{pr2}$

Tags: 函数用户inforline职位position切片
1条回答
网友
1楼 · 发布于 2024-05-20 15:45:50

看来你让事情变得比需要的更难。与其将迷宫作为一个字符串加载,不如将其读入数组中。在load\u maze中执行.strip()操作,而不是每次调用print-maze()

def load_maze(filename):
    """
    Returns maze string from text file

    load_maze(str) -> list
    """
    maze = []
    with open(filename) as file:
        for line in file:
            maze.append(line.strip())
    return maze

def print_maze(maze, position):
    """
    Prints maze with position of the player

    print_maze(str, (int, int)) -> None
    """

    (x, y) = position

    for row, line in enumerate(maze):
        if row == y:
            print(line[:x] + 'A' + line[x + 1:])
        else:
            print(line)

maze = load_maze('maze1.txt')

print_maze(maze, (1, 1))

相关问题 更多 >