안녕하세요! 가족과 함께하는 스마트 라이프입니다. 활기찬 아침이에요! 어제 영단어 퀴즈로 뇌를 풀었다면, 오늘은 손가락과 눈이 바빠질 시간입니다. 화면 아래에서 위로 날아오는 장애물들을 요리조리 피하며 살아남는 ‘장애물 피하기 게임’을 함께 만들어볼까요?

1. 장애물이 움직이는 원리
게임 속 장애물은 어떻게 움직이는 걸까요? 아주 간단해요! 리스트라는 긴 줄에 장애물과 빈칸을 무작위로 섞어 넣고, 이 줄을 반복문(while)을 통해 계속 아래로 새로 그려주는 거예요. 우리가 보는 화면이 아주 빠르게 바뀌면 장애물이 마치 나에게 다가오는 것처럼 보인답니다!
2. 게임 조절 요정의 필수 주문
- random.choice([‘ ‘, ‘🔥’]): 빈칸이나 장애물 중 하나를 무작위로 골라 길을 만들어요.
- time.sleep(0.5): 장애물이 다가오는 속도를 조절해요. 숫자가 작아질수록 빨라진답니다!
- input(): 사용자가 왼쪽(L)이나 오른쪽(R) 중 어디로 피할지 결정해요.
3. 실전 연습: 아슬아슬 장애물 피하기 코딩하기
import random
import time
print("🚀 장애물 피하기 게임을 시작합니다!")
print("불길(🔥)을 피해 안전한 길로 이동하세요!")
score = 0
my_pos = 1 # 0: 왼쪽, 1: 오른쪽
# 게임 시작
while True:
# 1. 새로운 장애물 생성 (왼쪽 길, 오른쪽 길)
road = [random.choice([' ', '🔥']), random.choice([' ', '🔥'])]
# 2. 화면 출력
print(f"\n|{road[0]}|{road[1]}|")
# 3. 사용자 이동 입력
move = input("어디로 피할까요? (L: 왼쪽 / R: 오른쪽): ").upper()
if move == 'L': my_pos = 0
elif move == 'R': my_pos = 1
# 4. 충돌 확인
if road[my_pos] == '🔥':
print("\n💥 콰광! 장애물에 부딪혔습니다!")
print(f"최종 점수: {score}점")
break
score += 10
print(f"점수: {score} | 무사히 피했습니다!")
time.sleep(0.3)

4. 더 짜릿한 게임으로 업그레이드!
- 점점 빠르게: 점수가 오를수록
time.sleep시간을 줄여서 점점 속도가 빨라지게 해보세요. - 아이템 추가: 장애물 대신 ‘⭐’를 먹으면 점수가 2배가 되는 기능을 넣어보세요.
- 목숨 시스템: 24탄의 칭찬 비서처럼, 한 번 부딪혀도 격려 메시지와 함께 기회를 한 번 더 주는 기능을 추가해보세요.
5. 가족과 함께하는 ‘우리 집 순발력 왕’
아이와 함께 장애물 모양을 직접 바꿔보세요. 멧돼지(🐗), 똥(💩), 유령(👻) 등 아이가 재미있어하는 이모지로 바꾸면 코딩이 훨씬 즐거워집니다. 아이가 직접 score += 50으로 점수 배점을 높여보며 ‘규칙을 정하는 사람이 게임의 주인’이라는 것을 체험하게 해주세요. EduPad 프로젝트에서 아이들이 짧은 집중력을 발휘해 성취감을 느끼는 미니 게임으로 활용하기에 정말 좋은 예제입니다.
마치며: 위기를 기회로 만드는 코딩!
챌린지의 28번째 미션도 완료! 오늘은 리스트의 인덱스와 무한 반복문을 사용해 긴장감 넘치는 게임 로직을 구현해 보았습니다. 내일 오전 9시에는 이번 주의 피날레! 여러분의 소중한 비밀을 지켜주는 ‘암호 마법! 나만의 비밀 메시지기’ 마법으로 돌아오겠습니다!



