본문 바로가기
프로그램/Python 1000제

Python 271제] 두근두근 파이썬(개정판) CHAPTER 8 도전문제 p243

by 건티 2024. 3. 15.
728x90

출처 : 반크_독도2023

 

참고풀이] (1)

import turtle # 터틀 그래픽 모듈을 불러온다. 
import random  # 난수 모듈을 불러온다. 

screen = turtle.Screen()
image1 = "turtle.gif"
image2 = "turtle.gif"
image3 = "turtle.gif"

screen.addshape(image1)
screen.addshape(image2)
screen.addshape(image3)


t1 = turtle.Turtle() # 첫 번째 거북이를 생성한다.
t1.shape(image1)
t1.pensize(5) # 팬의 두께를 5로 한다. 
t1.penup() # 펜을 든다. 
t1.goto(-500, 200) # (-300, 200) 위치로 간다. 

t2 = turtle.Turtle() # 두 번째 거북이를 생성한다. 
t2.shape(image2)
t2.pensize(5)                   # 팬의 두께를 5로 한다. 
t2.penup()                      # 펜을 든다. 
t2.goto(-500, 0)              # (-300, 0) 위치로 간다. 

t3 = turtle.Turtle() # 세 번째 거북이를 생성한다. 
t3.shape(image2)
t3.pensize(5)                   # 팬의 두께를 5로 한다. 
t3.penup()                      # 펜을 든다. 
t3.goto(-500, -200)             # (-300, -200) 위치로 간다. 


t1.pendown() # 첫 번째 거북이의 펜을 내린다. 
t2.pendown() # 두 번째 거북이의 펜을 내린다. 
t3.pendown() # 세 번째 거북이의 펜을 내린다. 
t1.speed(1)
t2.speed(1)
t3.speed(1)


for i in range(30): # 100번 반복한다. 
    d1 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. 
    t1.forward(d1)  # 난수만큼 이동한다. 
    d2 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. 
    t2.forward(d2)                      # 난수만큼 이동한다. 
    d3 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. 
    t3.forward(d2)                      # 난수만큼 이동한다. 

▶ 거북이 이미지

turtle.GIF
0.00MB



참고풀이 결과] (1)

 

 

참고풀이](2)

import turtle # 터틀 그래픽 모듈을 불러온다. 
import random  # 난수 모듈을 불러온다. 
import time

screen = turtle.Screen()
screen.setup(1500,800)
image1 = "turtle.gif"
image2 = "turtle.gif"
image3 = "turtle.gif"

screen.addshape(image1)
screen.addshape(image2)
screen.addshape(image3)

#time.sleep(5)

dLine=turtle.Turtle() #결승선을 그린다.
dLine.pensize(5)
dLine.penup()
dLine.goto(500,250)
dLine.pendown()
dLine.right(90)
dLine.pencolor("red")
dLine.forward(500)
dLine.left(90)
dLine.hideturtle()


t1 = turtle.Turtle() # 첫 번째 거북이를 생성한다.
t1.shape(image1)
t1.pensize(5) # 팬의 두께를 5로 한다. 
t1.penup() # 펜을 든다. 
t1.goto(-500, 200) # (-300, 200) 위치로 간다. 

t2 = turtle.Turtle() # 두 번째 거북이를 생성한다. 
t2.shape(image2)
t2.pensize(5)                   # 팬의 두께를 5로 한다. 
t2.penup()                      # 펜을 든다. 
t2.goto(-500, 0)              # (-300, 0) 위치로 간다. 

t3 = turtle.Turtle() # 세 번째 거북이를 생성한다. 
t3.shape(image2)
t3.pensize(5)                   # 팬의 두께를 5로 한다. 
t3.penup()                      # 펜을 든다. 
t3.goto(-500, -200)             # (-300, -200) 위치로 간다. 


t1.pendown() # 첫 번째 거북이의 펜을 내린다. 
t2.pendown() # 두 번째 거북이의 펜을 내린다. 
t3.pendown() # 세 번째 거북이의 펜을 내린다.
t1.pencolor("black")
t2.pencolor("blue")
t3.pencolor("purple")

t1.speed(1)
t2.speed(1)
t3.speed(1)

d1Sum=-500
d2Sum=-500
d3Sum=-500
while True: # 무한반복한다. 
    d1 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. 
    t1.forward(d1)  # 난수만큼 이동한다.
    d1Sum+=d1
    if d1Sum>500: break
    d2 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. 
    t2.forward(d2)              # 난수만큼 이동한다. 
    d2Sum+=d2
    if d2Sum>500: break
    d3 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. 
    t3.forward(d3)              # 난수만큼 이동한다. 
    d3Sum+=d3
    if d3Sum>500: break


참고풀이 결과](2)

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 가을

 

 

반응형

댓글