0
저는 현재 Charles Dierbach의 저서 '파이썬을 이용한 컴퓨터 과학 개론'을 배우고 있습니다.거북이를 캔버스에서 튀기는 방법
거북이가 캔버스에서 튀어 나오려고하지만 작동하지 않습니다. 나는 다른 변화를 시도했지만이
여기에 내 코드를 수정할 수있는하지 않은 : 나는 당신의 코드에서 최소한의 예를 추출했습니다
#Drunkard walk PYTHON
from turtle import *
from random import *
#draw a house
def house(t):
pu()
goto(270,100)
pd()
pensize(5)
for i in range(4):
fd(100)
right(90)
setheading(120)
fd(100)
setheading(240)
fd(100)
pu()
goto(200,0)
pd()
setheading(90)
fd(70)
setheading(0)
fd(40)
setheading(270)
fd(70)
pu()
#make roads
def road(t):
pu()
goto(80, 280)
pd()
begin_fill()
color('black')
setheading(270)
fd(250)
setheading(180)
fd(100)
setheading(90)
fd(250)
setheading(0)
fd(100)
end_fill()
pu()
goto(80,25)
pd()
begin_fill()
color('white')
setheading(270)
for i in range(4):
fd(70)
right(90)
fd(100)
right(90)
end_fill()
pu()
goto(80, -45)
pd()
begin_fill()
color('black')
setheading(270)
fd(240)
setheading(180)
fd(100)
setheading(90)
fd(240)
setheading(0)
fd(100)
end_fill()
#this is my code to keep turtle on canvas
def isInScreen(window, t):
xmin=-299
xmax=299
ymin=-299
ymax=299
xTcor = t.xcor()
yTcor = t.ycor()
if xTcor<xmin or xTcor>xmax:
new_heading = (180 - t.heading())
return new_heading
if yTcor<ymin or yTcor>ymax:
new_heading = (360 - t.heading())
return new_heading
#house coord
if (170<=xTcor<=200 or 200<=xTcor<=270)and yTcor==0:
new_heading = (360 - t.heading())
return new_heading
if xTcor==170 and 0<=yTcor<=100:
new_heading = (180 - t.heading())
return new_heading
if (170<=xTcor<=200 or 200<=xTcor<=270) and yTcor==100:
new_heading = (360 - t.heading())
return new_heading
if xTcor==270 and 0<=yTcor<=100:
new_heading = (180 - t.heading())
return new_heading
if 170<=xTcor<=271 and 100<=yTcor<=150:
new_heading = (360 - t.heading())
return new_heading
if 200<=xTcor<=240 and yTcor ==0:
new_heading = 0
return new_heading
return 100
#################MAIN####################
setup(600,600)
window=Screen()
window.title("Drunkard walk")
window.bgcolor("grey")
#get the turtle and change the shape
t=getturtle()
t.shape('turtle')
shapesize(2,1.2,1.2)
pu()
#change coords and make the ouer roads
goto(290,290)
pd()
setheading(270)
pensize(10)
for i in range(4):
fd(580)
right(90)
shape('circle')
house(t)
goto(80,0)
road(t)
penup()
goto(-250,-260)
shapesize(1,1,1)
walking = True
while walking:
pendown()
fd(10)
color = choice(["black", "red", "yellow", "blue", "white", "green"])
fillcolor(color)
ch = randrange(2)
if ch == 0:
left(90)
else:
right(90)
setheading(isInScreen(window, t))
mainloop()
exitonclick()
도와 주셔서 감사합니다. – user6277136
도와 주셔서 감사합니다.하지만 술주정 뱅이가 무작위로 오른쪽이나 왼쪽으로 걸어가는 술주정 뱅이를 만들려고합니다. 무한 루프를 사용하여이를 수행 할 수있는 방법이 있습니까? 덕분에 @cdlane – user6277136
@ user6277136, 모션 함수에 술취한 보행 코드를 다시 추가하면 거북이가 움직이는 방식을 제어합니다. – cdlane