Exemple #1
0
    def __init__(self, host='', port=2222):
        self.host = host    # Symbolic name meaning all available interfaces
        self.port = port    # Arbitrary non-privileged port
        self.network_data = None

        # Datagram (udp) socket
        try :
            self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            print('Socket created')
        except socket.error as exp :
            print('Failed to create socket. Because: %s', str(exp))
            raise

        # Bind socket to local host and port
        try:
            self.socket.bind((self.host, self.port))
            print('Socket bind complete.')
        except socket.error as exp:
            print('Failed to bind the socket. Because: %s', str(exp))
            raise
            
        try:
            self.db_connection = sqlite3.connect(DB_PATH)
            self.db_connection_cursor = self.db_connection.cursor()
            print('Data base connected.')
        except Exception as exp:
            print('Failed to connect to the database. Because: %s', str(exp))
            raise
        
        self.board_model = BoardModel(self.get_all_device_list())
Exemple #2
0
    def newgame(self):
        '''Creates a new game based on the player's options'''
        player1AI = None
        player2AI = None
        model = BoardModel(
            width=int(self.width.get()),
            height=int(self.height.get()),
            k=int(self.k.get()),
            gravity=True if self.gravity.get() == "On" else False)
        #Setup human or AI player
        if (self.player1.get()):
            p1 = self.listbox_p1_AI.get()
            if len(p1) != 0:
                player1AI = p1  #Load AI Player
            else:
                raise NoAISelectedError("Select file for plater 1 AI.")

        if (self.player2.get()):
            p2 = self.listbox_p2_AI.get()
            if len(p2) != 0:
                player2AI = p2  #Load AI Player
            else:
                raise NoAISelectedError("Select file for plater 2 AI.")

        self.destroy()
        self.parent.destroy()
        create_newgame(model, player1AI, player2AI)
Exemple #3
0
def create_newgame(model=None,
                   player1AI=None,
                   player2AI=None,
                   gui=True,
                   stepmode=False):
    '''Creates a new game. If no_gui, both players must be AI players'''
    if not gui:
        '''No GUI'''
        if player1AI is not None and player2AI is not None:
            player1 = AIPlayer(1, model, player1AI)
            player2 = AIPlayer(2, model, player2AI)
            game = connectk.ConnectK(model, player1, player2)
            p = Thread(target=game.play)
            p.start()
            return
        else:
            raise NoGUIError(
                "If no GUI option is used, both players must be AIs.")
    else:
        '''GUI'''
        root = TK.Tk()
        if model is None:
            model = BoardModel()  #New instance with default settings
        gui = ConnectKGUI(root, model)
        if stepmode:
            gui.stepmode.set(True)

        if player1AI is None:
            player1 = GUIPlayer(1, model)
            gui.add_button_listener(player1.action_listener, 1)
        else:
            player1 = AIPlayer(1, model, player1AI)

        if player2AI is None:
            player2 = GUIPlayer(2, model)
            gui.add_button_listener(player2.action_listener, 2)
        else:
            player2 = AIPlayer(2, model, player2AI)

        game = connectk.ConnectK(model, player1, player2, gui)
        p = Thread(target=game.play)
        gui.update_gui(time=2)
        p.start()
        root.mainloop()
Exemple #4
0
 def __init__(self, app):
     QMainWindow.__init__(self, None)
     self.app = app
     self.boardModel = BoardModel(self.app)
     self._setupUi()
     self._refreshActionsState()
     
     self.connect(self.browserView.selectionModel(), SIGNAL('selectionChanged(QItemSelection,QItemSelection)'), self.browserSelectionChanged)
     self.connect(self.app, SIGNAL('boardChanged()'), self.boardChanged)
     
     # Actions
     self.connect(self.actionActions, SIGNAL('triggered()'), self.actionsTriggered)
     self.connect(self.actionMaterialize, SIGNAL('triggered()'), self.materializeTriggered)
     self.connect(self.actionShowLocations, SIGNAL('triggered()'), self.showLocationsTriggered)
     self.connect(self.actionShowDetails, SIGNAL('triggered()'), self.showDetailsTriggered)
     self.connect(self.actionShowIgnoreBox, SIGNAL('triggered()'), self.showIgnoreBoxTriggered)
     self.connect(self.actionAddLocation, SIGNAL('triggered()'), self.addLocationTriggered)
     self.connect(self.actionRemoveLocation, SIGNAL('triggered()'), self.removeLocationTriggered)
     self.connect(self.actionUpdateLocation, SIGNAL('triggered()'), self.updateLocationTriggered)
     self.connect(self.actionQuit, SIGNAL('triggered()'), QCoreApplication.instance().quit)
     self.connect(self.actionNewFolder, SIGNAL('triggered()'), self.newFolderTriggered)
     self.connect(self.actionRemoveEmptyFolders, SIGNAL('triggered()'), self.removeEmptyFoldersTriggered)
     self.connect(self.actionRenameSelected, SIGNAL('triggered()'), self.renameSelectedTriggered)
     self.connect(self.actionMoveSelectedToIgnoreBox, SIGNAL('triggered()'), self.moveSelectedToIgnoreBoxTriggered)
     self.connect(self.actionSwitchConflictAndOriginal, SIGNAL('triggered()'), self.switchConflictAndOriginalTriggered)
     self.connect(self.actionMassRename, SIGNAL('triggered()'), self.massRenameTriggered)
     self.connect(self.actionSplit, SIGNAL('triggered()'), self.splitTriggered)
     self.connect(self.actionUndoSplit, SIGNAL('triggered()'), self.undoSplitTriggered)
     self.connect(self.actionMoveConflicts, SIGNAL('triggered()'), self.moveConflictsTriggered)
     self.connect(self.actionMoveConflictsAndOriginals, SIGNAL('triggered()'), self.moveConflictsAndOriginalsTriggered)
     self.connect(self.actionRenameInRespectiveLocations, SIGNAL('triggered()'), self.renameInRespectiveLocationsTriggered)
     self.connect(self.actionCopyToOtherLocation, SIGNAL('triggered()'), self.copyToOtherLocationTriggered)
     self.connect(self.actionMoveToOtherLocation, SIGNAL('triggered()'), self.moveToOtherLocationTriggered)
     self.connect(self.actionShowHelp, SIGNAL('triggered()'), self.showHelpTriggered)
     self.connect(self.actionRegister, SIGNAL('triggered()'), self.registerTrigerred)
     self.connect(self.actionCheckForUpdate, SIGNAL('triggered()'), self.checkForUpdateTriggered)
     self.connect(self.actionOpenDebugLog, SIGNAL('triggered()'), self.openDebugLogTriggered)
     self.connect(self.actionAbout, SIGNAL('triggered()'), self.aboutTriggered)