def __init__(self, pilite):
        super(GolThread, self).__init__(name='GameOfLive')

        self._run = True

        self.gol = GameOfLive(14, 9)

        self.gol.board[3][3:6] = [1, 1, 1]

        self.pilite = pilite
class GolThread(threading.Thread):
    def __init__(self, pilite):
        super(GolThread, self).__init__(name='GameOfLive')

        self._run = True

        self.gol = GameOfLive(14, 9)

        self.gol.board[3][3:6] = [1, 1, 1]

        self.pilite = pilite

    def stop(self):
        self._run = False
        self.join()

    def run(self):
        time.sleep(10)
        #self.serialbuffer += '$$$SPEED100\r'
        self.pilite.keyEntry(d=1, S='A', i=None, P=None, s=None, v=None, V=None, W=None)
        time.sleep(2)
        #self.pilite.keyEntry(d=1, S='$$$SPEED10\r', i=None, P=None, s=None, v=None, V=None, W=None)
        #time.sleep(5)
        #self.pilite.keyEntry(d=1, S='Arnold', i=None, P=None, s=None, v=None, V=None, W=None)
        #time.sleep(5)
        #self.pilite.keyEntry(d=1, S='$$$ALL,ON\r', i=None, P=None, s=None, v=None, V=None, W=None)
        self.pilite.keyEntry(d=1, S='$$$F000000000000000000000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\r', i=None, P=None, s=None, v=None, V=None, W=None)
        time.sleep(5)

        while self._run:
            print "Step!"
            cmd = '$$$F'
            for row in self.gol.board:
                cmd += ''.join([ str(i) for i in row ])
            print "Will send '{}' with length {}".format(cmd, len(cmd))
            self.pilite.keyEntry(d=1, S=(cmd+'\r'), i=None, P=None, s=None, v=None, V=None, W=None)
            #self.serialbuffer += cmd+'\r'

            self.gol.calculatenextboard()

            self._run=False
            time.sleep(5)
# -*- coding: utf8 -*-

from gol import GameOfLive

import serial
import time
import random
import logging

if __name__ == '__main__':
    logging.basicConfig(level='DEBUG')

    x, y = (14, 9)
    gol = GameOfLive(x, y)

    #for i in range(random.randint(x*y/10, x*y/4)):
        #gol.board[random.randrange(x)][random.randrange(y)] = 1

    gol.board[0][0:3] = [0, 1, 0]
    gol.board[1][0:3] = [0, 0, 1]
    gol.board[2][0:3] = [1, 1, 1]
    #gol.board[3][0:5] = [0, 0, 1, 1]


    s = serial.Serial('/dev/ttyAMA0', baudrate=9600)
    s.setTimeout(1)

    s.write('$$$ALL,OFF\r')

    #starttime = time.time()