II단원 확장 — 게임 시스템 실습과제

학습한 스택·큐를 메뉴 히스토리·대사 큐로 확장하기 (추가 강의)

← 전체 목차 II단원 목차

이 페이지는 강의 외 추가 강의예요. II단원에서 배운 스택·큐를 게임의 메뉴 뒤로가기, 대사·이벤트 순서라는 구체적인 시스템으로 확장합니다. 각 주제마다 자료구조 복기 → 사용 API → 실제 구현 활용 순으로 짚어요.

1. 스택 — 메뉴 화면 히스토리

게임에서 타이틀 → 메인 → 설정처럼 들어갈 때마다 화면이 쌓이고, "뒤로"를 누르면 가장 최근 화면으로 돌아갑니다. 이게 스택(LIFO)이에요.

샌즈가 나오는 메뉴처럼 겹겹이 쌓인 화면.
샌즈가 있는 메뉴처럼 겹겹이 쌓이는 구조 = 스택. pop 시 맨 위(현재 화면)가 빠진다.

📌 복기: 스택

📌 사용하는 파이썬 API

리스트.append(값)
맨 뒤에 넣기 → 스택의 push. 리스트의 "맨 뒤"를 스택의 "맨 위(top)"로 봅니다.
리스트.pop()
괄호 비우면 맨 뒤에서 하나 꺼내 반환 → 스택의 pop.

🎮 실제 구현에서 쓰는 곳

🐍 실습: 스택 (메뉴)

2. 큐 — 대사·이벤트 순서

대사 한 줄이 나온 순서대로 화면에 띄워지고, "다음"을 누르면 다음 대사가 나옵니다. 먼저 넣은 게 먼저 나오는 FIFO가 큐예요.

RPG 대사창과 [다음] 버튼. dequeue할 때마다 다음 줄 표시.
대사 한 줄씩 = 큐에서 dequeue. "다음" 누를 때마다 front에서 꺼낸다.

📌 복기: 큐

📌 사용하는 파이썬 API

from collections import deque
덱(double-ended queue): 앞·뒤 모두 O(1)로 넣고 뺄 수 있어요. 큐로 쓸 때는 "뒤에 넣고 앞에서 뺌".
덱.append(값), 덱.popleft()
append = enqueue, popleft() = dequeue. list의 pop(0)은 비용이 크므로 큐에는 deque를 씁니다.

🎮 실제 구현에서 쓰는 곳

🐍 실습: 큐 (대사)