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()