스크래치 샘플 스크립트 – 산수 문제 풀기 게임 1



스크래치를 이용하여 간단한 게임을 작성하고 테스트 해보겠습니다.

만들고자 하는 프로그램을 구상하고 목표에 맞게 만드는 대신 기본적인 게임의 정의와 목표로 시작하여 다양하게 테스트 및 적용해보고 발전시켜가는 방법으로 간단한 게임을 만들어 보겠습니다.

게임을 만드는 것도 중요하지만 다양한 테스트와 경험이 중요하다고 생각합니다.

 

산수 문제 풀기 게임


설명

산수 문제 풀기 게임은 ‘더하기, 빼기, 나누기, 곱하기’ 문제를 출제하고 문제를 풀어 나가는 문제 입니다.

 

Test 1. 문자열 출력하고 기다리기

스크래치의 블록을 이용하여 문제를 출제하는 부분에 대해서 코딩해 보겠습니다.

우선 문제를 출제하고 입력을 받기 위해서는 ‘입력 블록’이 필요합니다.

(참고 : 스크래치 샘플 스크립트 – 입력과 출력)

[스크립트 설명]
삭제된 블록(회색), 추가된 블록(파란색), 기존 블록(검정색)
ㅇ 스페이스 키를 눌렀을 때 스크립트가 동작 합니다.
ㅇ 스프라이트가 ‘1 + 1 은 ?’ 이라고 하는 문자열을 출력하고 기다립니다.
– 이 부분에서 결과창 하단에 입력창에서 우리가 무엇인가를 입력을 해야 다음 스크립트가 수행 됩니다.


ㅇ 2초 동안 기다립니다.
ㅇ 스프라이트는 우리가 입력한 숫자를 말합니다.

 

Test 2. 변수를 사용하여 문제 출제하기

Test 1에서와 같이 정해진 문자열을 출력하는 것이 아닌 변수를 이용하여 고정되지 않은 문자열을 출력할 수 있도록 테스트 해보겠습니다.

스크립트는 아래와 같습니다.

[스크립트 설명]
삭제된 블록(회색), 추가된 블록(파란색), 기존 블록(검정색)
ㅇ 우선 X와 Y라는 이름으로 변수를 2개 생성하였습니다.
ㅇ 스페이스키를 눌렀을 때 스크립트가 시작됩니다.
ㅇ X와 Y 변수를 각각 숫자 0으로 초기화 합니다.
ㅇ 반복문을 사용하여 스크립트를 10번 반복하게 합니다.
ㅇ X와 Y변수를 1만큼 증가시킵니다.
ㅇ 문자열 결합하기 블록을 이용하여 변수와 출력을 하고자 하는 문자열을 적절하게 결합합니다.
ㅇ 2초 기다리고 입력받은 값(대답)을 말합니다.

위와 같이 스크립트를 코딩하고 테스트를 해보면 (X, Y) 값이 (0, 0), (1, 1), (2, 2), … , (10, 10) 으로 10번 증가하며 ‘0 더하기 0’, ‘1 더하기 1′, … , ’10 더하기 10’ 까지 문제를 10번 출제하는 것을 확인 할 수 있습니다.

 

Test 3. 난수(랜덤)를 사용하여 문제 출제하기

난수 블록을 사용하여 예측할 수 없는 문제를 출제하도록 스크립트를 코딩해 보겠습니다.

그리고 Test 2의 스크립트에서 약간의 수정을 하였습니다.

스크립트는 아래와 같습니다.

[스크립트 설명]
삭제된 블록(회색), 추가된 블록(파란색), 기존 블록(검정색)
ㅇ 우선 X와 Y라는 이름으로 변수를 2개 생성하였습니다.
ㅇ 스페이스키를 눌렀을 때 스크립트가 시작됩니다.
ㅇ 반복문을 사용하여 스크립트를 10번 반복하게 합니다.
ㅇ X와 Y 변수를 각각 숫자 0으로 초기화 합니다.
ㅇ 1~10 사이의 난수를 선택하여 X와 Y변수를 선택된 난수로 정합니다.
ㅇ 반복문을 사용하여 스크립트를 10번 반복하게 합니다.
ㅇ X와 Y변수를 1만큼 증가시킵니다.
ㅇ 문자열 결합하기 블록을 이용하여 변수와 출력을 하고자 하는 문자열을 적절하게 결합합니다.
ㅇ 2초 기다리고 입력받은 값(대답)을 말합니다.

 

Test 4. 출제된 더하기 문제 정답/오답 판단하기

출제된 문제들에 대하여 답을 입력하였을 때 정답인지 오답인지 판단하는 로직을 추가하도록 하겠습니다.

스크립트는 아래와 같습니다.

[스크립트 설명]
삭제된 블록(회색), 추가된 블록(파란색), 기존 블록(검정색)
ㅇ 스페이스키를 눌렀을 때 스크립트가 시작됩니다.
ㅇ 반복문을 사용하여 스크립트를 10번 반복하게 합니다.
ㅇ 1~10 사이의 난수를 선택하여 X와 Y변수를 선택된 난수로 정합니다.
ㅇ 문자열 결합하기 블록을 이용하여 변수와 출력을 하고자 하는 문자열을 적절하게 결합합니다.
ㅇ 조건문 블록을 이용하여 정답 혹은 오답 여부를 판단합니다.
– 연산 블록을 사용하여 ‘(X + Y) = 대답’이 맞는지를 비교합니다.

  – (True : 참<정답>)일 경우
    * ‘정답이에요’를 말하고
    * 1초 기다립니다.
  – (False : 거짓<오답>)일 경우
    * ‘틀렸어요’를 말하고
    * 1초 기다립니다.
ㅇ 2초 기다리고 입력받은 값(대답)을 말합니다.

 

Test 5. 점수 계산하기

10개의 문제를 출제하고 문제를 푸는 동안 점수를 계산하는 부분을 코딩하도록 하겠습니다.

점수를 계산하는 방법은
문제를 맞추었을 경우는 1점을 주고
문제를 맞추지 못하였을 경우는 점수를 주지 않는 방법으로 구현을 해보겠습니다.

그렇게 되면 만점이 10점이 될 것이고 정답을 맞춘 문제의 수가 점수가 될 것으로 예상합니다.

스크립트는 아래와 같고 Test 4 스크립트에서 점수 관련된 변수와 연산만 추가되었습니다.

[스크립트 설명]
삭제된 블록(회색), 추가된 블록(파란색), 기존 블록(검정색)
ㅇ 스페이스키를 눌렀을 때 스크립트가 시작됩니다.
ㅇ Score라는 이름의 변수를 만들고 Score 변수를 0으로 초기화 합니다.
ㅇ 반복문을 사용하여 스크립트를 10번 반복하게 합니다.
ㅇ 1~10 사이의 난수를 선택하여 X와 Y변수를 선택된 난수로 정합니다.
ㅇ 문자열 결합하기 블록을 이용하여 변수와 출력을 하고자 하는 문자열을 적절하게 결합합니다.
ㅇ 조건문 블록을 이용하여 정답 혹은 오답 여부를 판단합니다.
– 연산 블록을 사용하여 ‘(X + Y) = 대답’이 맞는지를 비교합니다.

  – (True : 참<정답>)일 경우
    * ‘정답이에요’를 말하고
    * 1초 기다립니다.
    * Score 변수를 1만큼 바꿉니다.
  – (False : 거짓<오답>)일 경우
    * ‘틀렸어요’를 말하고
    * 1초 기다립니다.

결과창에서 정답일 경우 Score변수가 1만큼씩 증가하는 것을 확인할 수 있고, 오답일 경우는 Score변수가 유지되는 것을 확인할 수 있겠습니다.

여기까지 산수 문제 중 ‘더하기’ 문제를 출제하고 정답/오답을 판단하여 점수 계산하는 간단한 게임을 만들어 보았습니다.

위 Test 스크립트를 이용하면 ‘빼기, 곱하기, 나누기’ 문제를 출제할 수 있도록 코딩함에 어려움은 없을 것으로 생각됩니다.



1 thought on “스크래치 샘플 스크립트 – 산수 문제 풀기 게임 1”

Leave a Comment