반응형
삼각형, 사각형, 오각형, 육각형, 원 중에 하나를 랜덤으로 그리는 프로그램을 작성해보자.
그림이 그려지는 위치는 마우스를 클릭하는 곳이고, 선 색과 채우기 색은 동일한 랜덤값으로 하며, 다각형의 크기는 50~100 중 랜덤으로 결정하도록 함
초기 색상은 검정색이고, c를 누르면 모든 내용이 지워지며 스페이스바를 누르면 랜덤으로 색상이 결정되도록 함
import random, turtle
t = turtle.Turtle()
s = turtle.Screen()
t.speed(5)
def drawit(x,y):
t.penup()
t.goto(x,y)
t.pendown()
t.begin_fill()
draw_polygon(size)
t.end_fill()
def draw_polygon(size):
p=[3, 4, 5, 6, 7]
s = random.choice(p)
if s == 7:
t.circle(size)
else:
t.circle(size, steps=s)
def turtle_color():
global r, g, b
r = random.random()
g = random.random()
b = random.random()
t.pencolor((r, g, b))
t.fillcolor((r, g, b))
r, g, b = 0.0, 0.0, 0.0
def poly_size():
size=random.randint(50, 100)
return size
s.onscreenclick(drawit)
size=poly_size()
s.onkeypress(t.clear,"c")
s.onkeypress(turtle_color, "space")
s.listen()
def drawit(x,y):
t.penup()
t.goto(x,y)
t.pendown()
t.begin_fill()
draw_polygon(size)
t.end_fill()
▶ 마우스로 클릭한 곳(x,y)에 그림을 그림
def draw_polygon(size):
p=[3, 4, 5, 6, 7]
s = random.choice(p)
if s == 7:
t.circle(size)
else:
t.circle(size, steps=s)
▶ 삼각형, 사각형, 오각형, 육각형, 원 중에 하나를 랜덤으로 결정함
→ 각각 삼각형(3), 사각형(4), 오각형(5), 육각형(6), 원(7)을 지칭하는 값들을 리스트에 미리 저장 후 랜덤으로 선택하도록 함
def turtle_color():
global r, g, b
r = random.random()
g = random.random()
b = random.random()
t.pencolor((r, g, b))
t.fillcolor((r, g, b))
r, g, b = 0.0, 0.0, 0.0
▶ 전역변수 r, g, b를 선언하고 터틀 그래픽의 선 색과 채우기 색을 모두 랜덤으로 결정된 r, g, b 값으로 사용함
→ r, g, b를 0.0으로 초기화 함, 즉 초기 색상을 검정으로 선언
def poly_size():
size=random.randint(50, 100)
return size
▶ 다각형의 크기는 50~100 중 랜덤으로 결정됨
▶ s.onscreenclick(drawit) : 화면을 클릭하면 그림을 그리도록 함
▶ size = poly_size() : 랜덤으로 다각형의 크기를 결정하여 반환함
▶ s.onkeypress(t.clear, "c") : "c"를 누르면 화면의 모든 내용이 지워짐
▶ s.onkeypress(turtle_color, "space") : "space bar"를 누르면 랜덤으로 색상이 결정됨
▶ s.listen() : 프로그램이 활성화 됨
반응형
'Language > Python' 카테고리의 다른 글
[ Python ] 출력 형태 정리 (0) | 2021.09.27 |
---|---|
[ Python ] 터틀 그래픽(Turtle Graphic) 문법 정리 (2) | 2021.09.27 |
[ Python ] 우수 제품 선발 프로그램 (0) | 2021.09.27 |
[ Python ] 학급 학생들의 성적 산출 프로그램 (0) | 2021.09.26 |
[ Python ] 랜덤 혈액형 개수 맞추기 프로그램 (0) | 2021.09.26 |