안녕하세요! 가족과 함께하는 스마트 라이프입니다. 지난 시간에 거북이를 직접 조종하는 법을 배웠죠? 오늘은 거북이에게 아주 중요한 임무를 줄 거예요. 바로 화면에 나타나는 ‘맛있는 먹이’를 찾아 먹는 미션입니다! 먹이를 먹을 때마다 점수가 쑥쑥 올라가는 ‘게임 시스템’을 함께 만들어봐요.

1. 게임의 핵심: “닿았을까? 안 닿았을까?”
게임에서 캐릭터가 아이템을 먹거나 적에게 부딪히는 것을 ‘충돌(Collision)’이라고 해요. 거북이 마법에서는 distance()라는 함수를 사용해서 거북이와 먹이 사이의 거리를 잴 수 있어요. 두 친구 사이의 거리가 아주 가까워지면 “냠냠! 먹이를 먹었다!”라고 판단하는 것이죠.
2. 점수를 기억하는 마법 상자
우리는 1강에서 변수를 배웠죠? 이번 게임에서는 score = 0이라는 변수를 만들어서 먹이를 먹을 때마다 score = score + 10을 해줄 거예요. 컴퓨터가 잊어버리지 않고 점수를 차곡차곡 쌓아줄 거랍니다.
3. 실전 연습: 먹이 먹기 게임 코드
아래 코드를 실행하면 빨간색 먹이가 나타나요. 화살표 키로 거북이를 움직여 먹이로 다가가 보세요!
import turtle
import random
# 1. 거북이와 먹이 준비
t = turtle.Turtle() # 주인공 거북이
t.shape("turtle")
food = turtle.Turtle() # 먹이
food.shape("circle")
food.color("red")
food.penup()
food.goto(random.randint(-200, 200), random.randint(-200, 200))
score = 0
# 2. 먹이를 먹었는지 확인하는 마법
def play():
global score
# 거북이와 먹이의 거리가 20보다 작으면 (충돌!)
if t.distance(food) < 20:
score = score + 10
print(f"현재 점수: {score}점!")
# 먹이를 새로운 랜덤 위치로 옮겨요
food.goto(random.randint(-200, 200), random.randint(-200, 200))
# 0.1초마다 이 마법을 계속 확인해요
turtle.ontimer(play, 100)
# 조종 함수 (지난 시간 내용)
def go_up(): t.setheading(90); t.forward(20)
def go_down(): t.setheading(270); t.forward(20)
def go_left(): t.setheading(180); t.forward(20)
def go_right(): t.setheading(0); t.forward(20)
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. 게임을 더 흥미진진하게 만드는 팁
지금 만든 게임에 이런 양념을 뿌려볼까요?
- 효과음 내기: 먹이를 먹을 때 삑! 소리가 나게 해보세요.
- 타이머 추가: “30초 안에 몇 점을 얻나 보자!”라고 시간을 정해둬요.
- 방해꾼 등장: 거북이를 쫓아오는 무서운 상어 거북이를 추가해보세요!
5. 가족과 함께하는 ‘최고 기록 도전’
오늘 만든 코드를 온 가족이 돌아가며 플레이해 보세요. 누가 더 빨리 먹이를 10개 먹는지 시간을 재보는 거예요. 아이들은 자신이 만든 코드로 부모님이 즐거워하는 모습을 보며 엄청난 성취감을 느낀답니다. “이 숫자를 10에서 20으로 바꾸면 점수가 더 빨리 올라가!”라고 게임 규칙을 바꾸는 법(모딩)도 가르쳐 주세요.
마치며: 이제 당신은 게임 제작자!
축하합니다! 이제 여러분은 단순히 명령만 내리는 게 아니라, 규칙이 있고 점수가 있는 진짜 ‘게임’을 설계할 수 있게 되었습니다. 다음 시간에는 거북이 시리즈의 마지막! ‘적을 피해 도망가는 서바이벌 게임’으로 업그레이드해 보겠습니다!



