더북(TheBook)

t.ycor()는 현재 거북이(대포)의 y 좌푯값을 구하는 문장입니다. 땅의 y 좌푯값은 0이므로 땅보다 위로, 즉 하늘로 날아가는 동안 거북이의 y 좌푯값은 언제나 0보다 큽니다. 대포가 날아가다가 땅에 떨어지는 순간, 즉 거북이의 y 좌푯값이 0보다 작아지는 순간이 바로 대포가 땅에 닿는 순간입니다. 이렇게 거북이가 땅에 닿는 순간 while 반복문을 빠져나오게 되고 대포가 멈추게 됩니다(다시 말해 거북이가 움직이지 않습니다).

 

TIP

땅의 y 좌푯값이 왜 0인지는 ‘# 땅을 그립니다’ 주석이 적힌 부분을 보면 알 수 있습니다. t.goto 함수로 땅을 그릴 때 y 좌푯값을 0으로 설정하였죠?

 

while 반복문을 빠져나오면 t.distance 함수로 현재 거북이의 위치와 목표 지점(target, 0)과의 거리를 구합니다. 목표 지점과의 거리가 25보다 작으면 얼추 명중한 것이므로 Good!을 출력하고, 25보다 크면 불발한 것으로 보고 Bad!를 출력합니다.

 

TIP

목표 지점은 땅 위에 있으므로 y 좌푯값은 무조건 0입니다. x 좌푯값만 random.randint 함수로 50~150 사이에 있는 임의의 수를 가져옵니다. 따라서 목표 지점의 좌푯값은 (target, 0)이 되는 거죠.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.