Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
# 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)
Ejemplo n.º 3
0
    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()