import pyg
from pyg import *

import sqlite3

from random import *


con = sqlite3.connect(":memory:");
cur = con.cursor();

cur.execute("""
CREATE TABLE ball (
    id INTEGER NOT NULL,
    x INTEGER NOT NULL,
    y INTEGER NOT NULL, 
    vx FLOAT NOT NULL, 
    vy FLOAT NOT NULL);
""");

cur.execute("""
CREATE UNIQUE INDEX pk on ball (id ASC);
""");

cur.execute("DELETE FROM ball");
for i in range(10000):
  cur.executemany("INSERT INTO ball VALUES(?,?,?,?,?)", [(150+i,randint(10,500),randint(10,250),random(),random())]);

physiQuery = """
UPDATE ball SET x = x+vx, y = y+vy,
vx = CASE WHEN x+vx>1024 OR x+vx<0 THEN -vx ELSE vx END,
vy = CASE WHEN y+vy>512 OR y+vy<0 THEN -vy ELSE vy END
""";

if __name__ == "__main__":
  while main():
    cur.execute(physiQuery);
    cur.execute("SELECT x,y FROM ball LIMIT 10000");
    lst = [];
    for data in cur.fetchall():
      x,y = data;
      circle(x,y);
  con.commit();
  cur.close();
