def guiGameAddedCallback(gameUUID, gameSettings): genericCallback('GAME', 'guiGameAddedCallback', gameUUID, gameSettings) print "[CLI] joining the game %s with UUID %s" % (gameSettings['name'], gameUUID) global game game = ManyInARowGame.joinGame(service, player, gameUUID, gameSettings['name'], gameSettings['description'], gameSettings['numRows'], gameSettings['numCols'], gameSettings['waitTime'], *gameCallbacks) game.start()
# In the real implementation, don't sleep but wait for the # guiServiceRegisteredCallback callback. time.sleep(1.5) # Start a ManyInARow game. name = 'Ubergame' description = 'Zis is dah ubergame!' numRows = 10 numCols = 12 waitTime = 3 if not options.listenOnly: print "[CLI] Hosting ManyInARowGame 'Ubergame'." game = ManyInARowGame.hostGame(service, player, name, description, numRows, numCols, waitTime, *gameCallbacks) game.start() time.sleep(2) print "[CLI] Sending chat message." game.sendChatMessage("Guten tag, anybody around?") time.sleep(0.5) print "[CLI] Making a move." game.makeMove(2) time.sleep(0.5) else: time.sleep(2) time.sleep(5)
def __init__(self, type, info, player, service, win_parent=None): # If type is CREATE_NEW_GAME, info contains the number of rows and colums, name and comment. # If type is JOIN_GAME, info contains the UUID of the game the user wishes to join. QtGui.QWidget.__init__(self, win_parent) self.scene = None self.aiActive = False self.manyInARowService = service self.player = player self.nrCols = info["cols"] self.nrRows = info["rows"] self.gameName = str(info["name"]) self.comment = str(info["comment"]) self.waitTime = info["waitTime"] self.startTime = None self.players = {} self.manyInARow = None self.layoutCreated = False self.aiTimer = QtCore.QTimer() self.aiTimer.timeout.connect(self.aiMakeMove) self.aiTimer.setInterval(1000) self.errorBox = QtGui.QMessageBox(QtGui.QMessageBox.Information, "0", "0", QtGui.QMessageBox.Ok, self) # Custom event types: self.MAKE_MOVE_EVENT = QtCore.QEvent.User + 1 self.PLAYER_WON_EVENT = QtCore.QEvent.User + 2 self.GAME_FINISHED_EVENT = QtCore.QEvent.User + 3 # ensure threading safety: self.lock = threading.Condition() if type == self.CREATE_NEW_GAME: self.manyInARow = ManyInARowGame.hostGame( service, player, self.gameName, self.comment, self.nrRows, self.nrCols, self.waitTime, self.chatCallBack, self.gameJoinedCallBack, self.playerJoinedCallBack, self.playerLeftCallBack, self.moveCallBack, self.enableClicks, self.disableClicks, self.playerWonCallBack, self.gameFinishedCallBack, self.freezeCallback, self.unfreezeCallback, ) if not self.layoutCreated: self.createLayout() QtCore.QObject.connect(self.scene, QtCore.SIGNAL("playerClicked(int)"), self.makeMove) QtCore.QObject.connect(self.scene, QtCore.SIGNAL("mouseHoverColumn(int)"), self.makeHoverMove) self.manyInARow.start() if type == self.JOIN_GAME: self.gameUUID = info["UUID"] self.manyInARow = ManyInARowGame.joinGame( service, player, self.gameUUID, self.gameName, self.comment, self.nrRows, self.nrCols, self.waitTime, self.chatCallBack, self.gameJoinedCallBack, self.playerJoinedCallBack, self.playerLeftCallBack, self.moveCallBack, self.enableClicks, self.disableClicks, self.playerWonCallBack, self.gameFinishedCallBack, self.freezeCallback, self.unfreezeCallback, ) self.gameUUID = self.manyInARow.UUID self.startTime = self.manyInARow.startTime self.manyInARow.start()