만약 주사위를 던졌을 때 1부터 6까지 순서대로 주사위 값이 나온다면 어떨까요? 주사위로 게임을 할 때 던질 때마다 예측을 할 수 없는 값이 나오기 때문에 게임의 재미가 더하게 될 것입니다. 마이크로 비트(micro:bit)에서는 이렇듯 예측할 수 없는 수를 만드는 방법을 지원해주고 있습니다. 이번 포스팅에서는 이러한 예측할 수 없는 수, 즉 난수를 생성해주는 random에 대해 알아보도록 하겠습니다.
| random
마이크로 비트(micro:bit), 파이썬에서 난수를 생성하기 위해서는 random 모듈을 사용자 프로그램에 포함을 해야 합니다. random 함수 사용법을 설명드리기 위해 간단한 예제 코드를 작성하였습니다.
이 마이크로 비트(micro:bit), 파이썬 코드의 예제는 A 버튼을 누르면 1부터 9까지의 숫자 중 랜덤으로 한 개의 숫자가 3초 동안 보였다가 사라지는 코드입니다.
from microbit import *
import random
numbers = [1,2,3,4,5,6,7,8,9]
while True:
if button_a.is_pressed() :
display.show(random.choice(numbers))
sleep(3000)
else :
display.clear()
파이썬 코드 설명입니다.
import random
random 모듈을 사용자 프로그램에 포함을 시키는 역할을 합니다. 난수 값을 발생시키기 위해서 반듯이 포함되어야 합니다.
numbers = [1,2,3,4,5,6,7,8,9]
지난번 포스팅에서 설명드린 리스트 형으로 1부터 9까지의 숫자를 numbers라는 리스트형에 집어넣은 것입니다.
random.choice( )
난수를 발생시키는 함수입니다. random.choice(numbers)와 같이 함수의 파라미터에 numbers 리스트 형을 넣으면 랜덤으로 리스트형 중에 하나를 선택하게 됩니다.
코드를 마이크로 비트(micro:bit)에 업로드(Flash) 한 다음, A 버튼을 누르면 아래와 같이 numbers 리스트형에 있는 숫자를 선택하여 LED에 보여 줍니다.
| LED 주사위 만들기
위에 있는 파이썬 코드를 활용하여 다음과 같이 주사위 이미지를 만들어서 적용할 수도 있습니다.
from microbit import *
import random
dice1 = Image("00000:"
"00000:"
"00900:"
"00000:"
"00000")
dice2 = Image("90000:"
"00000:"
"00000:"
"00000:"
"00009")
dice3 = Image("90000:"
"00000:"
"00900:"
"00000:"
"00009")
dice4 = Image("90009:"
"00000:"
"00000:"
"00000:"
"90009")
dice5 = Image("90009:"
"00000:"
"00900:"
"00000:"
"90009")
dice6 = Image("90009:"
"00000:"
"90009:"
"00000:"
"90009")
all_dices = [dice1, dice2, dice3, dice4, dice5, dice6]
while True:
if button_a.is_pressed() :
display.show(random.choice(all_dices))
sleep(3000)
else :
display.clear()
| Random Number
처음 보여드린 예제에서는 1부터 9까지 숫자를 출력하기 위해서 numbers란 리스트형을 만들어서 사용을 하였습니다. 이렇게 리스트형을 사용하는 방법도 있지만, random number를 사용하여 만들 수도 있습니다.
파이썬 코드를 다음과 같이 변경을 하면 됩니다.
from microbit import *
import random
while True:
if button_a.is_pressed() :
display.show(str(random.randint(1, 9)))
sleep(3000)
else :
display.clear()
random.randInt(시작숫자, 끝숫자)
random.randInt( ) 함수는 정수 범위를 지정하여 그 가운데에서 하나의 숫자를 반환하는 기능을 합니다.
str은 random.randint( ) 함수에서 반환한 숫자를 문자로 변환하는 기능을 합니다.
| 랜덤 관련 함수들
random.getrandbit(숫자)
정수형 난수 값을 반환한다. 숫자는 1에서 30까지의 범위를 가질 수 있습니다.
random.randint(시작숫자, 끝숫자)
시작 숫자와 끝 숫자 사이의 숫자를 랜덤으로 선택하여 반환합니다.
random.random()
0.0에서 1.0 사이의 소수점 값을 반환합니다
'오픈소스하드웨어 > 마이크로:비트' 카테고리의 다른 글
[마이크로 비트 with 파이썬] 제스처 사용법 (0) | 2020.03.24 |
---|---|
[마이크로 비트 with 파이썬] 가속도 센서 사용법 (0) | 2020.03.23 |
[마이크로 비트 with 파이썬] 버튼 사용법 (0) | 2020.03.20 |
[마이크로 비트 with 파이썬] LED 애니메이션 (3) (0) | 2020.03.19 |
[마이크로 비트 with 파이썬] LED 애니메이션 (2) (0) | 2020.03.17 |
댓글