2016-11-30 2 views
1

그래서 저는 가상 프로그래밍 클래스에서 파이썬을 배우기 때문에 거북 그래픽을 사용하여 그림을 만들어야하는 과제가 있습니다. 프로그램에서 루프 및 프로그래머 정의 함수와 같은 것을 사용하고 있지만 내 그림에서 수행하고 싶은 문제가 있습니다. 나는 하늘에 구름을 그리기 때문에 구름을 다른 위치로 끌어들이려고 노력하고 있습니다. 나는 x 좌표를 40 씩 증가시키고 있지만 구름이 점점 더 높아지고 낮아 지도록 노력하고 있습니다. 현재 구름이 천천히 하나 하나가 그려로 내려하지만 내가 할 노력하고있어 것은 하나 개의 구름 (100) 다음 (90)에서처럼 서로 다른 높이에서 구름을 만들 것입니다거북이가 for 루프에서 어떻게 위로 움직일 수 있습니까?

import turtle 

def backFill(b, c, x, y, l, h): 
    b.penup() 
    b.setpos(x, y) 
    b.color(c) 
    b.pendown() 
    b.begin_fill() 
    for side in range(2): 
     b.forward(l) 
     b.left(90) 
     b.forward(h) 
     b.left(90) 
    b.end_fill() 

def drawCloud(c, x, y): 
    c.penup() 
    c.setpos(x, y) 
    c.pendown() 
    c.color("grey") 
    c.begin_fill() 
    for side in range(5): 
     c.circle(10) 
     c.left(80) 
    c.end_fill() 

def main(): 
    print("Cars") 
    joe = turtle.Turtle() 
    joe.speed(0) 

    backFill(joe,"green",-200,-100,400,25) 
    backFill(joe,"black",-200,-75,400,75) 
    backFill(joe,"green",-200,0,400,25) 
    backFill(joe,"sky blue",-200,25,400,110) 

    x=-192.5 
    for side in range(10): 
     backFill(joe,"yellow",x,-40,25,5) 
     x=x+40 

    x=-180 
    y=100 
    for side in range(15): 
     drawCloud(joe,x,y) 
     x=x+40 
     y=y-10 

main() 

을 : 그것은 코드의리스트의 마지막에의 박사/간단한 설명 후 다시 100 등 그럼 다음 시간은 최대 10

https://gyazo.com/3ad5268231b3217b81636cc070573b75

TL 갈 것이라고는 반복 처음가 10 아래로 갈 것입니다 있는지 확인하기 위해 y=y-10, y+10 같은 것들을 시도 : 반복 된 그림을 위아래로 움직여서 단순한 직선이 아니기 때문에 노력하고 있습니다. for 루프 내에서 한 번 아래로 한 번 이동 한 다음 다른 시간 위로 이동하는 방법은 무엇입니까?

+0

나는 창의 영점 위치가 어디인지에 대해 잘못 생각한다고 생각합니다. 내 의견이 있습니다. – DejaVuSansMono

+0

https://gyazo.com/3ad5268231b3217b81636cc070573b75 – JakeNBake

+0

아니요, 문제가 잘 이해됩니다. 구름은 숫자가 높을수록 낮아지고 낮아지면 올라갑니다. – DejaVuSansMono

답변

3

side이 짝수 또는 홀수인지 여부를 확인하여 클라우드 위치를 증가 시키거나 감소 시킬지 여부를 결정할 수 있습니다. 좋아요 :

for side in range(15): 
    drawCloud(joe,x,y) 
    x=x+40 
    if(side%2==0): 
     y=y-10 
    else: 
     y=y+10 
+1

이미 '사이드'가있을 때 실제로 다른 카운터가 필요합니까? –

+0

Duh. 그 점을 지적 해 주셔서 감사합니다. – medman826

+0

고마워요. 나는 그런 걸 생각하고 있었지만 그것을하는 법을 몰랐습니다. – JakeNBake

관련 문제