Skip to content

활동

마법의 8번 공

초급 | MakeCode, Python | LED, 가속도 센서 | 난수, 선택 실행

1단계: 만들어 보세요.

프로젝트 소개

micro:bit 를 사용해서 1950년대에 유행했던 장난감을 만들어보고, 자기 마음대로 변형시켜 보세요.

마법의 8번 공과 흔들린 micro:bit 에 표시되는 체크표시

설명

  • 마법의 8번 공(Magic 8-ball)은 1950년대 미국에서 처음 만들어진 장난감입니다. 마법의 8번 공은 커다란 당구공처럼 생겼는데, ‘나는 부자가 되거나, 유명해 질 수 있을까?‘ 와 같이 궁금한 것을 질문한 후에 공을 흔들면, 서로 다른 20 가지 답변들 중 한 가지가 랜덤으로 선택되어 화면에 나타납니다. 화면에 나타나는 답은 긍정, 부정이지만 때로는 모호한 답변도 있습니다.
  • 다음 프로그램은 micro:bit 의 가속도 센서, 랜덤 값 생성 기능과 LED 화면을 이용해서
    마법의 8번 공 장난감처럼 만들어 줍니다. 그렇다(yes)와 같은 긍정의 의미로는 맞음(V) 모양을 출력하고, 아니다(no)와 같은 부정의 의미로는 틀림(X) 모양을 출력하고, 긍정도 부정도 아닌 ‘모호한 경우’ 에는 관심 없음과 같은 ‘지루함’ 모양을 출력합니다.
  • 프로그램에서는 1 이상 3 이하 범위의 수를 랜덤으로 선택하고, 그렇게 랜덤으로 골라진 수에 따라 만약(if)… 이면(then) 실행 … 아니면(else) 실행 … 과 같은 조건/선택 실행 구조를 이용해서 서로 다른 모양을 출력합니다. 이러한 실행 구조를 조건/선택 실행 구조라고 합니다.
  • 랜덤으로 선택 된 값이 3 인지 먼저 확인하고 그 값이 3인 경우에는, ‘그렇다’라는 의미의 체크 표시를 출력합니다. 랜덤으로 선택 된 값이 2 인지 그 다음으로 확인하고 그 값이 2인 경우에는, ‘아니다’라는 의미의 X 표시를 출력합니다.
  • 가장 나중에는 랜덤으로 선택된 값이 1인지 확인할 필요가 없습니다. 왜냐하면 3 이 아닌데 2 도 아니라면, 반드시 1이기 때문입니다. 따라서, ‘긍정도 부정도 아니다’ 라는 의미의 ‘지루함’ 모양을 출력합니다.

준비물

  • micro:bit (또는 MakeCode 시뮬레이터)
  • MakeCode 또는 Python 편집기
  • AAA 배터리 팩 (옵션)
  • micro:bit 마법의 8번 공에게 물어 볼 만한 질문들

2단계: 프로그래밍 해보세요.

1from microbit import *
2import random
3
4while True:
5    if accelerometer.was_gesture('shake'):
6        number = random.randint(1, 3)
7        if number == 3:
8            display.show(Image.YES)
9        elif number == 2:
10            display.show(Image.NO)
11        else:
12            display.show(Image.MEH)

3단계: 더 좋게 만들어 보세요.