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())
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)
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()
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)