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()