def generalStart(gamemodel, player0tup, player1tup, loaddata=None): """ The player tuples are: (The type af player in a System.const value, A callable creating the player, A list of arguments for the callable, A preliminary name for the player) If loaddata is specified, it should be a tuple of: (A text uri or fileobj, A Savers.something module with a load function capable of loading it, An int of the game in file you want to load, The position from where to start the game) """ log.debug("ionest.generalStart: %s\n %s\n %s\n" % (gamemodel, player0tup, player1tup)) worker = GtkWorker( lambda w: workfunc(w, gamemodel, player0tup, player1tup, loaddata)) def onPublished(worker, vallist): for val in vallist: # The worker will start by publishing (gmwidg, game) if type(val) == tuple: gmwidg, game = val gamewidget.attachGameWidget(gmwidg) gamenanny.nurseGame(gmwidg, game) handler.emit("gmwidg_created", gmwidg, game) # Then the worker will publish functions setting up widget stuff elif callable(val): val() worker.connect("published", onPublished) def onDone(worker, (gmwidg, game)): gmwidg.connect("close_clicked", closeGame, game) worker.__del__()
def __go (self): if self.worker: self.worker.cancel() self.worker = GtkWorker(lambda worker: PyChess._PyChess__go(self, worker)) self.worker.connect("published", lambda w, msg: self.extendlog(msg)) self.worker.connect("done", self.__onMoveCalculated) self.worker.execute()
def __go (self): self.worker = GtkWorker(lambda worker: PyChess._PyChess__go(self, worker)) def process (worker, messages): print "\n".join(messages) self.worker.connect("published", process) def ondone (worker, result): if not result: return self.board.applyMove(parseSAN(self.board,result)) print "move %s" % result self.worker.connect("done", ondone) self.worker.execute()
def __analyze (self): self.worker = GtkWorker(lambda worker: PyChess._PyChess__analyze(self, worker)) def process (worker, messages): print "\n".join(messages) self.worker.connect("published", process) self.worker.execute()