728x90
반응형
import turtle
import random
s_w = 800
s_h = 500
turtle.setup (width=s_w, height=s_h)
t=turtle.Turtle() # 터틀
t.hideturtle()
t.speed(0) # 속도 빠르게
t.penup() # 펜 들기
x = (s_w / 2) - 50 # 왼쪽에 여유를 두고 이동할 x 좌표
y = (s_h / 2) - 50
t.goto(-x, y) # 이동
t.pendown() # 펜 내리기
t.color('brown') # 색 지정
t.pensize(20) # 선 두께
limit_left = -x # 왼쪽 이동 제한
limit_right = x # 오른쪽 이동 제한
limit_bottom = -y # 아래 이동 제한
while True:
if t.ycor() < limit_bottom: # 현재 y 좌표가 아래쪽 이동제한에 도달하면 반복문 종료
break
t.forward(x*2) # 좌측에서 우측으로 이동
t.right(90) # 아래로 방향 바꿈
t.forward(30) # 아래로 이동
t.right(90) # 좌측으로 방향 바꿈
t.forward(x*2) # 좌측으로 이동
t.left(90) # 아래로 방향 바꿈
t.forward(30) # 아래롷 이동
t.left(90) # 우측으로 방향 바꿈
turtle.done()
try:
turtle.bye()
except:
print("bye")
클래스로 만들었을때 코드
import turtle
import random
class Robot():
def __init__(self, w, h):
self.s_w = w
self.s_h = h
turtle.setup (width=self.s_w, height=self.s_h)
self.t=turtle.Turtle() # 터틀
self.t.hideturtle()
self.t.speed(0) # 속도 빠르게
def run(self): # 그리는 함수. x,y 좌표. rad:반지름. co:칼라
self.t.penup() # 펜 들기
x = (self.s_w / 2) - 50
y = (self.s_h / 2) - 50
self.t.goto(-x, y) # 이동
self.t.pendown() # 펜 내리기
self.t.color('brown') # 색 지정
self.t.pensize(20) # 선 두께
limit_left = -x
limit_right = x
limit_bottom = -y
while True:
if self.t.ycor() < limit_bottom:
break
self.t.forward(x*2)
self.t.right(90)
self.t.forward(30)
self.t.right(90)
self.t.forward(x*2)
self.t.left(90)
self.t.forward(30)
self.t.left(90)
robot = Robot(800, 500)
robot.run()
turtle.done()
try:
turtle.bye()
except:
print("bye")
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 두 데이터를 같이 shuffle로 섞기 (0) | 2023.05.30 |
---|---|
[파이썬] 문제 : 정수 입력 받아서 각 자리수 만큼 # 출력 (0) | 2023.05.30 |
[파이썬] 문제 : 터틀(turtle) 30개의 임의 색과 크기의 원 그리기 (0) | 2023.05.29 |
[파이썬] 문제 : example.txt 파일의 $ 문자를 # 문자로 변경 (0) | 2023.05.29 |
[파이썬] 문제 : 영단어 퀴즈 만들기 (0) | 2023.05.28 |
댓글