안녕하세요! 가족과 함께하는 스마트 라이프입니다. 드디어 거북이 게임 시리즈의 마지막 날이에요! 오늘은 우리가 조종하는 거북이를 끈질기게 쫓아오는 ‘악당 상어’를 만들어 볼 거예요. 적을 피해 도망치며 점수를 쌓는 진짜 ‘서바이벌 게임’을 완성해 봅시다!

1. 스스로 움직이는 적(AI) 만들기
지금까지는 우리가 누르는 대로만 움직였지만, 악당 상어는 스스로 우리를 찾아와야 해요. 파이썬에게 “상어는 항상 거북이가 있는 쪽을 바라보고 조금씩 전진해!”라고 명령하면, 마치 살아있는 것처럼 거북이를 쫓아오는 인공지능 적이 탄생한답니다.
2. 게임의 끝: “잡혔다! 게임 오버”
지난 시간에 배운 distance() 마법을 기억하시나요? 상어와 거북이 사이의 거리가 너무 가까워지면 게임을 멈추고 “게임 오버!”라는 메시지를 띄울 거예요. 반대로 상어를 피해 오래 버티면 승리하는 규칙을 만들 수도 있죠.
3. 실전 연습: 상어 피하기 게임 코드
조금 길어 보이지만, 우리가 배운 내용이 다 들어있어요! 천천히 입력해 보세요.
import turtle
import random
# 1. 무대와 주인공, 악당 준비
t = turtle.Turtle() # 주인공 거북이
t.shape("turtle")
t.color("blue")
enemy = turtle.Turtle() # 악당 상어
enemy.shape("triangle")
enemy.color("red")
enemy.penup()
enemy.goto(200, 200)
# 2. 게임 메인 로직
def play():
# 상어가 거북이를 바라보고 1만큼 쫓아와요
enemy.setheading(enemy.towards(t))
enemy.forward(1)
# 만약 상어에게 잡히면?
if t.distance(enemy) < 20:
t.write("으악! 잡혔다!", font=("Arial", 20, "bold"))
return # 게임 종료
# 잡히지 않았다면 0.01초 뒤에 다시 실행
turtle.ontimer(play, 10)
# 3. 조종 마법 (화살표 키)
def go_up(): t.setheading(90); t.forward(15)
def go_down(): t.setheading(270); t.forward(15)
def go_left(): t.setheading(180); t.forward(15)
def go_right(): t.setheading(0); t.forward(15)
screen = turtle.Screen()
screen.listen()
screen.onkeypress(go_up, "Up")
screen.onkeypress(go_down, "Down")
screen.onkeypress(go_left, "Left")
screen.onkeypress(go_right, "Right")
play()
turtle.done()

4. 마법사들의 게임 업그레이드 제안
이 게임을 더 어렵고 재밌게 만들려면 어떻게 해야 할까요?
- 상어 속도 올리기: 시간이 지날수록
enemy.forward(1)의 숫자를 키워보세요. - 아이템 상자: 먹으면 상어의 속도가 느려지는 아이템을 화면에 뿌려보세요.
- 여러 마리의 적: 상어를 한 마리가 아니라 세 마리로 늘려보는 건 어떨까요?
5. 가족과 함께하는 ‘최후의 생존자’ 대회
오늘 완성한 게임으로 온 가족 생존 대회를 열어보세요! 스톱워치로 누가 상어를 피해 가장 오래 버티는지 기록을 재는 거예요. “아빠는 45초 버텼다! 너는 코드를 수정해서 상어를 더 느리게 만들었구나? 그것도 아주 똑똑한 전략이야!”라고 칭찬해 주며 코드를 수정하는 재미(모딩)를 함께 느껴보세요.
마치며: 거북이 마법 학교 졸업을 축하합니다!
와! 드디어 거북이와 함께하는 게임 제작 시리즈가 끝났습니다. 이제 여러분은 빈 화면에 그림을 그리고, 키보드로 캐릭터를 조종하고, 적을 만들어 게임의 규칙을 정할 수 있는 진짜 게임 개발자가 되었습니다. 다음 연재부터는 또 어떤 새로운 마법이 기다리고 있을까요? 더 넓은 파이썬의 세계에서 다시 만나요!



