3권 · 4. 리스트를 사용하여 퀴즈 만들어요
리스트를 사용하여 퀴즈 만들어요
여러 값을 차례대로 담는 리스트로 퀴즈 게임을 만들어요. 고양이가 낸 문제를 맞히면 앞으로 나아가요! 🐱
오늘의 미션
과일 리스트를 만들고, 몇 번째 항목인지 맞히는 퀴즈를 완성해요.
무엇을 만들까?

리스트는 값을 여러 개 담아 두는 상자예요.
리스트에 들어간 값은 줄을 선 것처럼 순서가 있어요.
대답이 맞으면 점수가 올라가고 고양이가 앞으로 움직여요.
준비물
- 엘리오퀴즈 게임을 함께 만드는 친구예요.
- 과일 리스트사과, 포도 같은 과일 이름을 차례대로 담아요.
- 고양이문제를 맞히면 앞으로 움직이는 주인공이에요.
- 점수정답을 맞힐 때마다 1점씩 올라가요.
따라해 보자
- 1
리스트 만들기
데이터 블록에서 과일 리스트를 만들어요.
- 2
과일 넣기
과일 이름을 리스트에 하나씩 추가해요.
- 3
순서 확인하기
몇 번째 항목인지 보고 과일의 자리를 알아봐요.
- 4
문제 묻기
고양이가 말한 과일이 몇 번째인지 물어봐요.
- 5
점수 올리기
대답이 맞으면 정답이라고 말하고 점수를 올려요.
완성 코드
🧱완성 코드 115블록 — 블록이 아주 많아요! 눌러서 펼쳐 보기
이 작품은 코드가 길어요. 천천히 부분부분 따라 만들어 봐요. 아래는 실제 Scratch 3.0 완성 코드예요.
무대
⚑ 클릭했을 때
무한 반복하기
[게임배경음악.mp3▾] 끝까지 재생하기
1번
[게임 시작▾] 신호를 받았을 때
무한 반복하기
만약 (보기1순서) > (10) (이)라면
[보기1순서▾] 을(를) (-10)만큼 바꾸기
([답▾]의 (보기1순서)번째 항목) 말하기
이 스프라이트를 클릭했을 때
만약 (정답) = (1) (이)라면
[정답▾] 신호 보내기
아니면
[틀렸다▾] 신호 보내기
2번
이 스프라이트를 클릭했을 때
만약 (정답) = (2) (이)라면
[정답▾] 신호 보내기
아니면
[틀렸다▾] 신호 보내기
[게임 시작▾] 신호를 받았을 때
무한 반복하기
만약 (보기2순서) > (10) (이)라면
[보기2순서▾] 을(를) (-10)만큼 바꾸기
([답▾]의 (보기2순서)번째 항목) 말하기
스프라이트 2
⚑ 클릭했을 때
[문제▾]의 (all)번째 항목 삭제하기
(apple) 을(를) [문제▾]에 추가하기
(banana) 을(를) [문제▾]에 추가하기
(cat) 을(를) [문제▾]에 추가하기
(desk) 을(를) [문제▾]에 추가하기
(egg) 을(를) [문제▾]에 추가하기
(fruit) 을(를) [문제▾]에 추가하기
(ghost) 을(를) [문제▾]에 추가하기
(hat) 을(를) [문제▾]에 추가하기
(idea) 을(를) [문제▾]에 추가하기
(joy) 을(를) [문제▾]에 추가하기
⚑ 클릭했을 때
[답▾]의 (all)번째 항목 삭제하기
(사과) 을(를) [답▾]에 추가하기
(바나나) 을(를) [답▾]에 추가하기
(고양이) 을(를) [답▾]에 추가하기
(책상) 을(를) [답▾]에 추가하기
(달걀) 을(를) [답▾]에 추가하기
(과일) 을(를) [답▾]에 추가하기
(유령) 을(를) [답▾]에 추가하기
(모자) 을(를) [답▾]에 추가하기
(생각) 을(를) [답▾]에 추가하기
(즐거움) 을(를) [답▾]에 추가하기
⚑ 클릭했을 때
x: (-103) y: (-118) (으)로 이동하기
(고양이가 말하는 영어가 무슨 뜻인지 보기에서 고르세요.) 을(를) (2)초 동안 말하기
(문제를 맞히면 앞으로 움직입니다.) 을(를) (2)초 동안 말하기
(고양이가 건물에 도착하면 게임에서 이깁니다.) 을(를) (2)초 동안 말하기
(고양이가 왼쪽 벽에 닿으면 게임에서 끝납니다. ) 을(를) (2)초 동안 말하기
[게임 시작▾] 신호 보내기
⚑ 클릭했을 때
무한 반복하기
모양을 [모양1▾] (으)로 바꾸기
(0.3)초 기다리기
모양을 [모양2▾] (으)로 바꾸기
(0.3)초 기다리기
[게임 시작▾] 신호를 받았을 때
[순서▾] 을(를) ((1) 부터 ([문제▾]의 항목 수) 사이의 난수)로 정하기
([문제▾]의 (순서)번째 항목) 말하기
[정답▾] 을(를) ((1) 부터 (3) 사이의 난수)로 정하기
보기 정하기
정의하기 보기 정하기
만약 (정답) = (1) (이)라면
[보기1순서▾] 을(를) (순서)로 정하기
[보기2순서▾] 을(를) ((순서) + (2))로 정하기
[보기3순서▾] 을(를) ((순서) + (6))로 정하기
만약 (정답) = (2) (이)라면
[보기1순서▾] 을(를) ((순서) + (1))로 정하기
[보기2순서▾] 을(를) (순서)로 정하기
[보기3순서▾] 을(를) ((순서) + (4))로 정하기
만약 (정답) = (3) (이)라면
[보기1순서▾] 을(를) ((순서) + (5))로 정하기
[보기2순서▾] 을(를) ((순서) + (8))로 정하기
[보기3순서▾] 을(를) (순서)로 정하기
[정답▾] 신호를 받았을 때
[boing▾] 재생하기
(30)만큼 움직이기
[순서▾] 을(를) ((1) 부터 ([문제▾]의 항목 수) 사이의 난수)로 정하기
([문제▾]의 (순서)번째 항목) 말하기
[정답▾] 을(를) ((1) 부터 (3) 사이의 난수)로 정하기
보기 정하기
[게임 시작▾] 신호를 받았을 때
[뒤로 가기▾] 을(를) (-0.5)로 정하기
무한 반복하기
x좌표를 (뒤로 가기)만큼 바꾸기
만약 (x좌표) < (-195) (이)라면
[게임 끝▾] 신호 보내고 기다리기
[틀렸다▾] 신호를 받았을 때
[chee chee▾] 재생하기
(-10)만큼 움직이기
[순서▾] 을(를) ((1) 부터 ([문제▾]의 항목 수) 사이의 난수)로 정하기
([문제▾]의 (순서)번째 항목) 말하기
[정답▾] 을(를) ((1) 부터 (3) 사이의 난수)로 정하기
보기 정하기
[게임 시작▾] 신호를 받았을 때
무한 반복하기
만약 [Buildings▾]에 닿았는가? (이)라면
[게임 승리▾] 신호 보내고 기다리기
[게임 끝▾] 신호를 받았을 때
[other scripts in sprite▾] 멈추기
[게임 승리▾] 신호를 받았을 때
[other scripts in sprite▾] 멈추기
3번
[게임 시작▾] 신호를 받았을 때
무한 반복하기
만약 (보기3순서) > (10) (이)라면
[보기3순서▾] 을(를) (-10)만큼 바꾸기
([답▾]의 (보기3순서)번째 항목) 말하기
이 스프라이트를 클릭했을 때
만약 (정답) = (3) (이)라면
[정답▾] 신호 보내기
아니면
[틀렸다▾] 신호 보내기
승리
⚑ 클릭했을 때
숨기기
[게임 승리▾] 신호를 받았을 때
맨 앞쪽으로 순서 바꾸기
보이기
[ghost▾] 효과를 (100) (으)로 정하기
(100)번 반복하기
[ghost▾] 효과를 (-1)만큼 바꾸기
[게임 승리▾] 신호를 받았을 때
모든 소리 끄기
무한 반복하기
[cheer▾] 끝까지 재생하기
게임 끝
⚑ 클릭했을 때
숨기기
[게임 끝▾] 신호를 받았을 때
맨 앞쪽으로 순서 바꾸기
보이기
[ghost▾] 효과를 (100) (으)로 정하기
(100)번 반복하기
[ghost▾] 효과를 (-1)만큼 바꾸기
[게임 끝▾] 신호를 받았을 때
모든 소리 끄기
무한 반복하기
[laugh-male1▾] 끝까지 재생하기
진짜 소스: 3.리스트를 사용하여 퀴즈 만들어요.sb2 · 115블록
도전!
과일 대신 동물이나 색깔 리스트로 새 퀴즈를 만들어 보세요! 🌈


리스트의 순서를 잘 쓰면 멋진 퀴즈 게임을 만들 수 있어요!