티스토리 뷰

Python/이코테

4-3. 게임개발

JH_ 2022. 6. 22. 01:00
n, m = map(int, input().split())

visit = [[0] * m for _ in range(n)]  # 방문 위치를 저장하기 위한 맵
x, y, d = map(int, input().split())
visit[x][y] = 1

gameMap = []
for i in range(n):
    gameMap.append(list(map(int, input().split())))

# 북 동 남 서 = 상 우 하 좌
dx = [0, 1, 0, -1]
dy = [-1, 0, 1, 0]


def turn_left():
    global d
    d -= 1
    if d == -1:
        d = 3


count = 1  # 현재 위치 포함
turn_time = 0
while True:
    turn_left()
    nx = x+dx[d]
    ny = y+dy[d]

    if visit[nx][ny] == 0 and gameMap[nx][ny] == 0:
        visit[nx][ny] = 1
        x = nx
        y = ny
        count += 1
        turn_time = 0
        continue
    else:  # 막혔을 때 1씩 더함
        turn_time += 1

    if turn_time == 4:  # 사방이 막혔을 때
        nx = x-dx[d]
        ny = y-dy[d]
        if gameMap[nx][ny] == 0:
            x = nx
            y = ny
        else:
            break
        turn_time = 0
print(count)

'Python > 이코테' 카테고리의 다른 글

5-2. 탐색 알고리즘 DFS/BFS  (0) 2022.06.24
5-1. 꼭 필요한 자료구조 기초  (0) 2022.06.23
4-2. 왕실의 나이트  (0) 2022.06.21
4-1. 아이디어를 코드로 바꾸는 구현  (0) 2022.06.20
11-6. 무지의 먹방라이브  (2) 2022.05.29
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday