더북(TheBook)

icon_solution 알아 보기

‘거북이 대포’라는 제목에 맞게 이 프로젝트에서는 거북이가 대포 혹은 대포알 역할을 합니다. 거북이 모양을 따로 지정하지 않았으므로 기본 모양인 화살촉 모양을 사용했습니다. left, right, forward 명령으로 대포가 날아가는 모습을 화면에 보여 줍니다. 이때 거북이 펜 상태를 up으로 지정하여 거북이 대포가 지나가는 자리에는 선이 그려지지 않습니다. 여기까지는 쉽죠?

거북이 대포 프로젝트에서 가장 중요한 역할을 하는 부분은 SpaceBar를 누르면 실행되는 fire 함수입니다. 이 함수는 조금 더 자세히 살펴볼 필요가 있습니다.

fire 함수의 처음과 끝은 각각 거북이(화살촉 모양 대포)의 ‘현재 각도를 저장하는 부분’인 ang = t.heading()과 거북이를 ‘처음 위치와 각도로 되돌리는 부분’인 t.setheading(ang)로 되어 있습니다. 이렇게 한 이유는 무엇일까요? 대포가 날아가는 동안 거북이 대포의 위치와 각도가 계속 변하기 때문입니다. 따라서 이 값을 처음 상태로 되돌려 다음 발사를 할 수 있도록 준비하는 것입니다.

 

다음 while 반복문이 바로 실제로 대포를 날아가게 하는 부분입니다.

while t.ycor() > 0:

t.forward(15)

t.right(5))

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