"""
[과제] 정n각형 여러 개 그리기 - 함수 연습
- 매개변수 여러 개 + 기본값
- return으로 값을 계산해서 돌려주기
- 여러 함수를 조합해서 문제 해결하기
"""

import turtle

# ===========================================================
# 문제 1. 매개변수 여러 개 + 기본값
# 정n각형을 그리는 함수 draw_gon(n, size, color='blue') 를 완성하세요.
#   n     : 변의 개수
#   size  : 한 변의 길이
#   color : 색깔 (기본값 'blue')
# ===========================================================
def draw_gon(n, size, color='blue'):
    t.color(color)
    angle = get_angle(n)      # 문제 2에서 완성하는 함수를 그대로 이용
    for _ in range(n):
        # TODO: 한 변(size만큼 전진)을 그리고, angle만큼 회전하는 코드를 작성하세요.
        pass


# ===========================================================
# 문제 2. return 활용
# 정n각형을 그릴 때 한 번 꺾어야 하는 회전각을 계산해서
# return 하는 함수 get_angle(n) 을 완성하세요.
# 힌트: 정n각형을 한 바퀴(360도) 도는 동안 꼭짓점마다 n번 꺾입니다.
# ===========================================================
def get_angle(n):
    # TODO: 회전각을 계산해서 return 하세요.
    pass


# ===========================================================
# 도전 과제. return + 함수 조합
# 정n각형 여러 개를 "겹치지 않게" 옆으로 나란히 그려보세요.
# 힌트: 도형 하나를 그리고 나서, 다음 도형이 시작할 x좌표를
#       "계산해서 return"하는 함수 next_x(x, size)를 만들어보세요.
#       (예: 지금 x좌표 + 도형 크기 + 여백)
# ===========================================================
def next_x(x, size):
    # TODO: 다음 도형이 시작할 x좌표를 계산해서 return 하세요.
    pass


# ===========================================================
# 아래는 이미 완성된 코드로, 수정하지 않아도 됩니다.
# 위의 함수 3개(draw_gon, get_angle, next_x)를 완성하면
# 정삼각형 -> 정사각형 -> 정육각형이 겹치지 않고 나란히 그려집니다.
# ===========================================================
s = turtle.Screen()
s.setup(680, 800, startx=-20, starty=20)
t = turtle.Turtle()
t.speed(1)

shapes = [3, 4, 6]
colors = ['red', 'green', 'orange']
x = -250

for n, color in zip(shapes, colors):
    t.penup()
    t.goto(x, 0)
    t.setheading(0)
    t.pendown()
    draw_gon(n, 50, color)
    x = next_x(x, 50)

s.mainloop()