[이코테] 게임 개발

developsy·2022년 5월 8일
0

코드 백업용

# p118


row, col = map(int, input().split())
x, y, d = map(int, input().split())
game_map = []
direction = [(-1,0), (0, 1), (1, 0), (0, -1)]
direction_back = [(1,0), (0, -1), (-1, 0), (0, 1)]

for i in range(row):
    game_map.append([i for i in map(int, input().split())])

count = 1
game_map[x][y] = 2

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

while True:
    turn_x = x + direction[turn_left()][0]
    turn_y = y + direction[turn_left()][1]
    
    if game_map[turn_x][turn_y] == 0:
        d = turn_left()
        x += direction[d][0]
        y += direction[d][1]
        game_map[x][y] = 2
        count += 1
    else:
        d = turn_left()
    
    if (game_map[x+1][y] == 1 or game_map[x+1][y] == 2)  and (game_map[x][y+1] == 1 or game_map[x][y+1] == 2) \
    and (game_map[x-1][y] == 1 or game_map[x-1][y] == 2) and (game_map[x][y-1] == 1 or  game_map[x][y-1] == 2):
        x += direction_back[d][0]
        y += direction_back[d][1]
        if game_map[x][y] == 1:
            break

print(count)

대충 30분정도 걸린 것 같은데, 개인적인 욕심으로는 구현속도를 더 늘리고 싶다

profile
공부 정리용 블로그

0개의 댓글