2016-12-12 4 views
-2

좌표를 입력으로 사용하여 벽을 미로에 추가하고 싶습니다. 이 같은 *파이썬에서 벽을 추가하는 방법은 무엇입니까?


|......| 
|......| 
|......| 
|......| 
|......| 

그리고 난의 형태로 벽을 추가 할 :

I는 다음과 같습니다 미로를


|......| 
|......| 
|....*.| 
|....*.| 
|....*.| 

두 개의 for 루프 (~ 행렬)를 사용하여이 미로를 만들었습니다.

좌표 x, y에서 시작 위치와 끝 위치를 묻는다면 어떻게해야합니까?

내가 몇 번 시도했지만, 나는 해결책을 찾을 수 없습니다가 ...의 당신의 미로 문자의 목록의 목록입니다 가정 해 봅시다 당신의 도움

+1

경로 찾기 알고리즘을 검색합니다 (예 : A * 알고리즘은 여러분을 안내 할 것이고 거기에는 많은 파이썬 스 니펫이 있습니다. –

답변

0

주셔서 감사합니다. 예를 들어 당신이처럼 만든 : 당신이 언급 한 바와 같이, 당신은 단지 하위 목록의 내용을 교체 할 필요가 경계를 만들기위한

>>> print '\n'.join(''.join(sub_maze) for sub_maze in my_maze) 
|.....| 
|.....| 
|.....| 
|.....| 
|.....| 
|.....| 
|.....| 

: 미로를 인쇄

>>> maze_width, maze_height = 5, 7 
>>> my_maze = [list('|'+'.'*maze_width+'|') for _ in range(maze_height)] 

, 당신은 목록을 가입 할 수 같은 인덱스를 기반으로 :

>>> my_maze[6][-3], my_maze[5][-3], my_maze[4][-3] = '*', '*', '*' 
#   ^^Third last index of row 
#   ^6th row 

결합 된 목록을 재 - 인쇄,이 인쇄됩니다 :

>>> print '\n'.join(''.join(sub_maze) for sub_maze in my_maze) 
|.....| 
|.....| 
|.....| 
|.....| 
|...*.| 
|...*.| 
|...*.|