def move_character(character, direction):
    current_position = character['position']
   
    if direction == 'left':
        new_position = (current_position[0] - 1, current_position[1])
    elif direction == 'right':
        new_position = (current_position[0] + 1, current_position[1])
    elif direction == 'up':
        new_position = (current_position[0], current_position[1] - 1)
    elif direction == 'down':
        new_position = (current_position[0], current_position[1] + 1)
    else:
        return character

    return {**character, 'position': new_position}

def game_loop():
    character = {'position': (0, 0)}
    is_running = True

    def update():
        nonlocal character
        # 캐릭터를 이동시키는 예제
        character = move_character(character, 'right')
        print("Character's current ", character['position'])

    while is_running:
        update()

game_loop()

상태 자체를 바꾸는게 아니라 새로운 상태를 만들어서 다시 갱신시킨다
라는게 함수형 느낌인가