소개
게임 스타일 앱을 직접 만들어본 적이 없어서, 게임과 형식이 가장 비슷한 걸 찾다가 "코시 블록 과제(Corsi block-tapping task)"라는 기억력 실험을 골랐습니다. 화면의 블록이 순서대로 반짝이면 그 순서를 기억해서 똑같이 따라 누르는 방식입니다. 맞히면 순서가 점점 길어지고 틀리면 끝나는 난이도 시스템도 게임스럽다고 생각해서 도전했습니다.
진행 방법
사용 도구: Claude Code(AI 코딩 에이전트). 저는 파이썬을 조금 아는 정도라 코드는 전부 Claude Code가 작성했고, 저는 무엇을 만들지 정하고 나온 결과를 직접 확인하며 이상한 부분을 잡아내는 역할을 했습니다.
진행 과정 요약: 이 게임은 사용자가 맞히느냐 틀리느냐에 따라 다음 문제(순서 길이)가 그때그때 정해져야 했습니다. 그래서 문제를 미리 다 만들어두는 방식이 아니라, "하나 내주고 → 결과를 받고 → 그 결과를 보고 다음 걸 정한다"는 흐름으로 엔진을 만들었습니다.
javascript
// 예시 수준의 재구성입니다 — 실제 코드는 아니고, 개념을 보여주기 위해 다시 쓴 것입니다.
function* corsiSequenceGenerator() {
let length = 3;
while (true) {
const sequence = generateRandomSequence(length);
const correct = yield sequence; // 사용자 응답을 받음
if (correct) length += 1;
else return; // 틀리면 종료
}
}이 방식은 파이썬의 제너레이터(yield) 개념과 비슷합니다 — 값을 한 번에 다 만들어두는 게 아니라, 필요할 때마다 하나씩 만들어서 내주고, 그 결과를 반영해서 다음 걸 결정하는 방식입니다.
결과와 배운 점
배운 점: 정해진 문제를 하나씩 순서대로 보여주는 것과, 결과에 따라 다음 문제가 달라지는 것은 완전히 다른 종류의 프로그램 구조라는 걸 알았습니다. "적응형(adaptive)" 로직을 처음 다뤄본 경험이었습니다.
시행착오: 완성 후 블록이 멈추거나 응답이 씹히는 버그가 있었습니다. AI에게 말로 설명했더니 세 번 연속 다른 원인을 추측했고 세 번 다 틀렸는데, 스크린샷 한 장을 보여주니 3분 만에 해결됐습니다. 원인은 자동 검사로는 못 잡는 것이었습니다 — 자동 검사는 항상 정확한 타이밍에 반응하는데, 저는 급하게 블록이 아직 켜지는 중에 눌러버려서 생긴 문제였습니다.