import random from direct.distributed import ClockDelta from direct.task import Task class LaserGameBase: def __init__(self, funcSuccess, funcFail, funcSendGrid, funcSetGrid): self.funcSuccess = funcSuccess self.funcFail = funcFail self.funcSendGrid = funcSendGrid self.funcSetGrid = funcSetGrid self.setGridSize(2, 2) self.blankGrid() self.finshed = 0 def delete(self): funcSuccess = None funcFail = None funcSendGrid = None funcSetGrid = None def setGridSize(self, x, y): self.gridNumX = x self.gridNumY = y def blankGrid(self): self.gridData = [] for i in xrange(0, self.gridNumX): self.gridData.append([ 0] * self.gridNumY) def win(self): if not self.finshed: self.finshed = 1 self.funcSuccess() def lose(self): if not self.finshed: self.finshed = 1 self.funcFail() def startGrid(self): self.blankGrid() def hit(self, hitX, hitY, oldx = -1, oldy = -1): if self.finshed: return None if self.checkForWin(): self.win() else: self.funcSendGrid() def checkForWin(self): return 0