from oxocard import *
from random import randint
from oxoaccelerometer import *
acc = Accelerometer.create()
num = 12
points = [[randint(0,7), randint(0,7)] for i in range(num)]
colors = []
for i in range(num):
colors.append([randint(50,255),randint(50,255),randint(50,255)])
grid = [[False for i in range(8)] for j in range(8)]
for p in points:
grid[p[0]][p[1]]=True
def getDir(p):
if p<1:
return -1
if p>2:
return 1
return 0
def onGrid(p):
return p[0]>=0 and p[0]<=7 and p[1]>=0 and p[1]<=7
def add(p,v):
return [p[0]+v[0],p[1]+v[1]]
enableRepaint(False)
while True:
clear()
pref = [acc.getX()/4.0, -acc.getY()/4.0] # preferred direction of movement
for i in range(num):
p = points[i]
v = [getDir(randint(0,300)/100.0+pref[k]) for k in range(2)]
r = add(p,v)
if onGrid(r):
if grid[r[0]][r[1]]==False:
grid[r[0]][r[1]]=True
grid[p[0]][p[1]]=False
p[0]=r[0]
p[1]=r[1]
dot(p[0],p[1],colors[i])
repaint()