본문 바로가기
프로그램

[파이썬] 문제 : turtle 임의의 색 지정해서 원 그리기

by 오디세이99 2023. 11. 22.
728x90
반응형
다음 딕셔너리 color에 주어진 색상과 반지름으로 원을 그리려고 한다.

터틀 그래픽 라이브러리를 임포트하여 원을 그리는 프로그램을 작성하세요.

color={‘red’:50, ‘blue’:100, ‘green’:150}

펜사이즈는 10으로 하며, 없는 색상이면 기본색인 검정의 반지름을 100으로 한다.

[실행결과]는 반지름 50인 빨간색, 반지름 100인 파란색, 반지름 150인 초록색, 반지름 100인 검정색 중 하나가 출력됨

 

import turtle
import random

s_w = 600
s_h = 600
turtle.setup (width=s_w, height=s_h)           # 화면 크기로 지정
t=turtle.Turtle()           # 터틀
t.hideturtle()              # 거북이 커서 숨기기
t.speed(0)                  # 속도 빠르게

color={'red':50, 'blue':100, 'green':150}    # 색 딕셔너리
color_lst = list(color.keys())               # 딕셔너리의 key들을 리스트로 만듬. ['red','blue','green']

# select_color = random.choice(color_lst)      # 색 이름 리스트 중에 하나를 임의로 선택 합니다.
select_index = random.randint(0, len(color_lst))   # color딕셔너리 외에 검은색으로 지정할 수 있도록 1개 더 추가

if select_index > len(color_lst)-1:            # select_index가 color의 수보다 크면 검은색 지정
    r = 100                                    # 반지름 100
    select_color = 'black'
else:
    r = color[select_color]                      # 선택된 색이름을 key로 해서 딕셔너리에서 크기를 찾습니다
    t.color(select_color)                        # 터틀의 색을 지정합니다.
t.pensize(10)                                # 펜 사이즈를 10으로 합니다.
# t.begin_fill()
t.circle(r)                                  # 원을 그립니다.
# t.end_fill()

turtle.done()

try:
    turtle.bye()
except:
    print("bye")

728x90
반응형

댓글