Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:blc:informatik:glf20:oxoaccel [2020/12/13 18:07] Ivo Blöchliger [Weitere Demos] |
lehrkraefte:blc:informatik:glf20:oxoaccel [2020/12/16 10:37] (current) Ivo Blöchliger [Weitere Demos] |
||
---|---|---|---|
Line 235: | Line 235: | ||
<hidden Shaker Tetris> | <hidden Shaker Tetris> | ||
Versuchen Sie in der oberen Hälfte, vertikal die drei gleichen Farben hinzukriegen. Dieser verschwinden dann. Ziel ist es, alle Pixel zum Verschwinden zu bringen. | Versuchen Sie in der oberen Hälfte, vertikal die drei gleichen Farben hinzukriegen. Dieser verschwinden dann. Ziel ist es, alle Pixel zum Verschwinden zu bringen. | ||
- | <code shakertetris.py> | + | < |
from oxocard import * | from oxocard import * | ||
from ivobuttons import * | from ivobuttons import * | ||
Line 342: | Line 342: | ||
</ | </ | ||
</ | </ | ||
+ | <hidden Labyrinth> | ||
+ | Durch Neigen der OxoCard gelangen Sie von der oberen linken Ecke in die untere rechte Ecke. | ||
+ | <code python laby.py> | ||
+ | from oxocard import * | ||
+ | from ivobuttons import * | ||
+ | from oxoaccelerometer import * | ||
+ | from random import randrange | ||
+ | |||
+ | |||
+ | # Gamestate als Dictionary, d.h. wie eine Liste aber mit Namen als Indizes | ||
+ | laby = { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | |||
+ | def myArrayShuffle(a): | ||
+ | l = len(a) | ||
+ | for i in range(l): | ||
+ | j = randrange(i, | ||
+ | a[i],a[j] = a[j],a[i] | ||
+ | |||
+ | |||
+ | def generate(): | ||
+ | global laby | ||
+ | laby[' | ||
+ | todo = [[1,1]] | ||
+ | laby[' | ||
+ | dirs = ((1, | ||
+ | ind = [0,1,2,3] | ||
+ | while len(todo)> | ||
+ | index = max(len(todo)-1-int(randrange(101)**2/ | ||
+ | pos = todo[index] | ||
+ | del todo[index] | ||
+ | myArrayShuffle(ind) | ||
+ | for d in ind: | ||
+ | a,b = pos[0]+dirs[d][0], | ||
+ | if laby[' | ||
+ | aa,bb = a+dirs[d][0], | ||
+ | if laby[' | ||
+ | laby[' | ||
+ | laby[' | ||
+ | todo.append(pos) | ||
+ | todo.append((aa, | ||
+ | break | ||
+ | laby[' | ||
+ | laby[' | ||
+ | |||
+ | def dimmen(m, farben): | ||
+ | for i in range(len(farben)): | ||
+ | farben[i]=tuple(map(lambda x: | ||
+ | |||
+ | def zeichnen(m=255): | ||
+ | global laby | ||
+ | farben = [BLACK, RED, BLUE, YELLOW] | ||
+ | dimmen(m, | ||
+ | for x in range(8): | ||
+ | xx = laby[' | ||
+ | for y in range(8): | ||
+ | yy = laby[' | ||
+ | f = BLACK | ||
+ | if xx>=0 and xx< | ||
+ | f = farben[laby[' | ||
+ | fastDot(x, | ||
+ | fastDot(3, | ||
+ | fastRepaint() | ||
+ | | ||
+ | | ||
+ | enableRepaint(False) | ||
+ | |||
+ | acc = Accelerometer.create() | ||
+ | generate() | ||
+ | zeichnen() | ||
+ | |||
+ | dimmwerte = [0, | ||
+ | |||
+ | while True: | ||
+ | ac = acc.getValues() | ||
+ | zeit = getms() | ||
+ | pos = [laby[' | ||
+ | for i in range(2): | ||
+ | if abs(ac[i])> | ||
+ | dir = 1 # Richtung positiv | ||
+ | if ac[i]< | ||
+ | dir = -1 | ||
+ | if i==1: # Vorzeichenwechsel für y | ||
+ | dir = -dir | ||
+ | pos[i] += dir | ||
+ | # Kleine Beschleunigung, | ||
+ | laby[' | ||
+ | | ||
+ | if (pos[0]!=laby[' | ||
+ | laby[' | ||
+ | laby[' | ||
+ | zeichnen() | ||
+ | if (laby[' | ||
+ | for i in range(len(dimmwerte)-1, | ||
+ | zeichnen(dimmwerte[i]) | ||
+ | laby[' | ||
+ | generate() | ||
+ | for i in dimmwerte: | ||
+ | zeichnen(i) | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ |