Skip to content

Instantly share code, notes, and snippets.

@teromakotero
Last active February 15, 2018 11:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save teromakotero/56c290010d8a27ed7f82e2054ab1b775 to your computer and use it in GitHub Desktop.
Save teromakotero/56c290010d8a27ed7f82e2054ab1b775 to your computer and use it in GitHub Desktop.
Playing with vim, uflash, micro:bit and Python. A simple binary game using only micro:bit.
from microbit import *
import random
# A very simple binary game. You will get ten times binary number with four leds installed in micro:bit. You can see the symbols in dictionary "numbers". If you get 10/10 you win the game. You change the decimal numbers first from button B and then choose the number from button A in micro:bit.
# Yksinkertainen kaksilukujärjestelmäpeli. Saat kymmenen binäärilukua neljällä micro:bitin ledillä näytettynä. Näet symbolit "numbers" sanakirjassa (dictionary). Jos saat 10/10, voitat pelin. Saat vaihdettua vastauksesi kymmenjärjestelmän numerot B-napista ja sen jälkeen valitset sen A-napista.
points = 0
# pisteet-muuttuja
numbers = {
# numbers-sanakirja, johon on tallennettu kymmenjärjestelmä - kaksilukujärjestelmä parit
0:"00000:00000:00000:00000:00000",
1:"00009:00000:00000:00000:00000",
2:"00090:00000:00000:00000:00000",
3:"00099:00000:00000:00000:00000",
4:"00900:00000:00000:00000:00000",
5:"00909:00000:00000:00000:00000",
6:"00990:00000:00000:00000:00000",
7:"00999:00000:00000:00000:00000",
8:"09000:00000:00000:00000:00000",
9:"09009:00000:00000:00000:00000"
}
for i in range(10):
# Toistetaan silmukka 10 kertaa
answer = 0
# vastaus-muuttuja
rand = random.randint(1,9)
# valitaan numeroista 1-9 satunnaisesti
binary = Image(numbers[rand])
# haetaan vastaava kaksilukujärjestelmän numero ledeillä näytettäväksi
display.show(binary)
# näytetään binääriluku
sleep(2000)
for j in range(3):
# toistetaan kolme kertaa
display.show(Image.ARROW_E)
# näytetään nuoli itään
sleep(250)
display.show(Image(numbers[0]))
# näytetään tyhjää
sleep(250)
while True:
if(button_b.was_pressed()):
# onko nappia B painettu?
if(answer < 9):
answer += 1
# kasvatetaan answer-muuttujaa yhdellä
display.show(str(answer))
# näytetään answer-muuttuja
else:
answer = 0
# asetetaan answer-muuttujan arvoksi 0, jos se ei ole pienempi kuin 9
display.show(str(answer))
# näytetään answer-muuttuja
elif(button_a.is_pressed()):
# onko nappia A painettu
if(answer == rand):
# tarkistetaan onko vastaus oikein
points += 1
# lisätään pisteitä yhdellä
display.show(Image.HAPPY)
# näytetään hymynaama
sleep(500)
break
# katkaistaan silmukka
else:
if(points > 0):
# jos pisteet-muuttuja on suurempi kuin 0
points -= 1
# vähennetään pisteitä yhdellä
display.show(Image.SAD)
# näytetään surullista naamaa
sleep(500)
break
# katkaistaan silmukka
else:
display.show(Image.SAD)
sleep(500)
break
string = "Sait oikein " + str(points) + "/10"
# muodostetaan viesti
display.scroll(string)
# näytetään viestissä, kuinka monta meni oikein
if(points == 10):
# jos sai kaikki oikein näytetään alla oleva animaatio
image_1 = "00000:00000:00900:00000:00000"
image_2 = "00000:09990:09090:09990:00000"
image_3 = "99999:90009:90009:90009:99999"
for k in range(10):
display.show(Image(image_1))
sleep(100)
display.show(Image(image_2))
sleep(100)
display.show(Image(image_3))
sleep(100)
display.show(Image(numbers[0]))
# näytetään tyhjä ruutu
@teromakotero
Copy link
Author

teromakotero commented Feb 15, 2018

I added comments in Finnish for educational use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment