Python challenge
[060~068] 터틀 그래픽
Grace Ryu
2023. 9. 24. 10:34
#060. 정사각형을 그려라
import turtle
for i in range(4):
turtle.right(90) #90도 회전
turtle.forward(100)
turtle.exitonclick()
#061. 삼각형을 그려라
import turtle
for i in range(3):
turtle.right(120) #120도 회전
turtle.forward(100)
turtle.exitonclick()
#062. 원을 그려라
import turtle
#for i in range(1):
turtle.circle(100)
turtle.exitonclick()
#063. 서로 붙어있지 않은 세개의 정사각형을 그려라. 세개의 정사각형을 서로 다른 색상으로 채워라
import turtle
turtle.begin_fill()
turtle.fillcolor("red")
for i in range(4):
turtle.forward(100)
turtle.right(90)
turtle.end_fill()
turtle.penup() #펜 올리기
turtle.goto(180,0) #180 우측이동
turtle.pendown() #펜 내리기
turtle.begin_fill()
turtle.fillcolor("yellow")
for i in range(4):
turtle.forward(100)
turtle.right(90)
turtle.end_fill()
turtle.penup()
turtle.goto(-180,0)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor("green")
for i in range(4):
turtle.forward(100)
turtle.right(90)
turtle.end_fill()
#064. 다섯개의 꼭짓점 있는 별모양을 그려라
import turtle
for i in range(5):
turtle.right(144) #별 내각의 합 180도, 각 36도 -> 180-36도 = 144도
turtle.forward(100)
turtle.end_fill()
#065.숫자 1의 밑에서부터 그리기 시작하여 다음 그림처럼 숫자를 그려라
import turtle
#오류
# 숫자 1 그리기
turtle.goto(-200, 0) # 시작 위치로 이동
turtle.pendown() # 펜을 내려놓고 그리기
turtle.forward(100)
turtle.penup()
# 숫자 2 그리기
turtle.goto(200, 100) # 다음 숫자 위치로 이동
turtle.pendown()
turtle.right(100)
turtle.forward(50)
turtle.left(100)
turtle.forward(50)
turtle.right(100)
turtle.penup()
# 숫자 3 그리기
turtle.goto(400, 100) # 다음 숫자 위치로 이동
turtle.pendown()
turtle.right(100)
turtle.forward(50)
turtle.left(50)
turtle.right(50)
turtle.forward(50)
turtle.left(100)
# 창을 닫으려면 클릭해야 함
turtle.exitonclick()
#정답지보고 다시함
import turtle
#숫자1
turtle.left(90)
turtle.forward(100)
turtle.right(90)
turtle.penup()
#숫자2
turtle.forward(50)
turtle.pendown()
turtle.forward(75)
turtle.right(90)
turtle.forward(50)
turtle.right(90)
turtle.forward(75)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(75)
turtle.penup()
#숫자3
turtle.forward(50)
turtle.pendown()
turtle.forward(75)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(45)
turtle.left(180)
turtle.forward(45)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(75)
turtle.penup()
turtle.hideturtle()
turtle.exitonclick()
#066.각 선 색상을 다르게 하여 팔각 형을 그려라
import turtle
colors = ["red", "orange", "yellow", "green", "blue", "purple", "pink", "black"]
for i in range(8):
turtle.pencolor(colors[i])
turtle.forward(100)
turtle.right(45)
turtle.exitonclick()
#정답지 보고 다시 풀어봄
import turtle
import random
for i in range(8):
turtle.color(random.choice(["red", "orange", "yellow", "green", "blue", "purple", "pink", "black"]))
turtle.forward(100)
turtle.right(45)
turtle.exitonclick()
#067. 다음 패턴을 만들어라
import turtle
for i in range(0, 10): #큰 모양 10번
for a in range(0,8): #8각형
turtle.forward(50)
turtle.right(45) #8각형 45도
turtle.right(36) #36도 회전
turtle.hideturtle()
turtle.exitonclick()
#068. 프로그램이 시작할때마다 변경되는 패턴을 그려라. random 함수를 사용하여 선의 개수와 각 선의 길이, 그리고 회전 각도를 선택하라.
import turtle
import random
lines = random.randint(3, 8)
for i in range(0, lines):
lenght = random.randint(10, 50)
angle = random.randint(30, 180)
turtle.forward(lenght)
turtle.right(angle)
turtle.exitonclick()
import turtle
import random
line = random.randint(3, 8)
length = random.randrange(50, 100, 5) # for문 안으로 넣어서 매 선마다 선의 길이를 무작위로 선택해야 함
rotate = random.randrange(0, 361, 5) # for문 안으로 넣어서 매 선마다 회전 각도를 무작위로 선택해야 함
for i in range(0, line):
turtle.forward(length)
turtle.right(rotate)
turtle.exitonclick()