def quadratic(): turtle.setworldcoordinates(-12, -2, 12, 102) f = lambda x: x**2 demo = Demo(f) demo.start(-10) demo.bag([x * 0.5 for x in range(-20, 21)]) gen = hill_climb.seek(-10, 0.5, f) for x, y in gen: demo.move(x, y, False)
def cosine_slope(): turtle.setworldcoordinates(-6.2, -12, 6.2, 12) f = lambda x: -x + 5 * math.cos(x) demo = Demo(f) demo.start(-6) demo.bag([x * 0.1 for x in range(-62, 62)]) gen = hill_climb.seek(-6, 0.1, f) for x, y in gen: demo.move(x, y, False)
def sa_demo(curr_x, step, f, temperature, x_points, min_x, max_x, *setup): turtle.setworldcoordinates(*setup) demo = Demo(f) demo.start(curr_x) demo.bag(x_points) gen = sim_anneal.seek(curr_x, step, f, temperature, min_x, max_x) for x, y, t, j in gen: demo.move(x, y, j) curr_x = x print(curr_x, f(curr_x))
def slanty_bag(): turtle.setworldcoordinates(-2.2, -2, 12.2, 22) demo = Demo(slanty_bag_curve) demo.bag([x * 0.5 for x in range(-1, 22)]) x = -0.5 step = 0.1 demo.start(x) gen = hill_climb.seek(x, step, slanty_bag_curve) for x, y in gen: demo.move(x, y, False)
def stuck(): turtle.setworldcoordinates(-12, -1, 12, 15) f = lambda x: math.fabs(x) demo = Demo(f) start = -10 step = 3 demo.start(start) demo.bag(range(-10, 11)) gen = hill_climb.seek(start, step, f) for x, y in gen: demo.move(x, y, False)
def on_pubmsg(self, connection, event): source = event.source() nick = source.split('!')[0] args = event.arguments() message = args[0].split(' ') if message[0] == '!!' and len(message) > 1: try: if self.admins[event.source()] == 'admin': command = "say \"^8(^1IRC:^5@^2" + nick + "^8)^7 " + ' '.join(message[1:]) + "\"" elif self.admins[event.source()] == 'mod': command = "say \"^8(^1IRC:^5+^2" + nick + "^8)^7 " + ' '.join(message[1:]) + "\"" self.rcon.send(command) except: #command = "say \"^8(^1IRC:^2" + nick + "^8)^7 " + ' '.join(message[1:]) + "\"" self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN_PRIV) elif message[0][0] == '@' and len(message[0]) > 1 and len(message) > 1: if message[0][1:].isdigit(): cid = message[0].split("@")[1] output = "tell " + cid + " \"^8(^1IRC:^2" + nick + "^8)^7 " + ' '.join(message[1:]) + "\"" self.rcon.send(output) elif message[0] == '!bigtext' and len(message) > 1: command = "bigtext \"" + ' '.join(message[1:]) + "\"" self.rcon.send(command) elif message[0] == '!kick' and len(message) > 1: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) self.rcon.send("kick " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_KICK % (nick, c.coloredIrcNickname())) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!slap' and len(message) > 1: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) self.rcon.send("slap " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_SLAP % (nick, c.coloredIrcNickname())) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!nuke' and len(message) > 1: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) self.rcon.send("nuke " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_NUKE % (nick, c.coloredIrcNickname())) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!mute' and len(message) > 1: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) self.rcon.send("mute " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_MUTE % (nick, c.coloredIrcNickname())) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!nextmap' and len(message) > 1: try: if self.admins[event.source()] == 'admin': self.rcon.send("g_nextmap " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_NEXTMAP % (message[1])) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!map': if len(message) > 1: try: if self.admins[event.source()] == 'admin': self.rcon.send("map " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_MAP %(nick, message[1])) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) else: self.connection.privmsg(self.target, self.m.MSG_CURR_MAP %(self.currentMap)) elif message[0] == "!shuffle": try: if self.admins[event.source()] == 'admin': self.rcon.send("shuffleteams") self.connection.privmsg(self.target, self.m.MSG_RCON_SHUFFLE % (nick)) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!force' and len(message) > 3: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) self.rcon.send("forcecvar " + message[1] + " " + message[2] + " " + ''.join(message[3:])) self.connection.privmsg(self.target, self.m.MSG_RCON_FORCECVAR % (nick, message[2], ''.join(message[3:]), c.coloredIrcNickname())) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!list': if self.reader != None: output = (self.m.MSG_LIST % (len(self.reader.clients), self.currentMap)) + " " for key, c in self.reader.clients.iteritems(): output = output + "(" + str(key) + ")" + c.coloredIrcNickname() + " " self.connection.privmsg(self.target, output) else: self.connection.privmsg(self.target, self.m.MSG_ERR_OBJECT) elif message[0] == '!ts3' and self.cfg.ts3enabled: try: ts3client = TS3(self.cfg.ts3host, self.cfg.ts3port, self.cfg.ts3user, self.cfg.ts3pass, self, self.target, "list", "") ts3client.start() except: self.connection.privmsg(self.target, self.m.MSG_ERR_GENERAL) elif message[0] == '!ts3info' and len(message) > 1 and self.cfg.ts3enabled: try: ts3client = TS3(self.cfg.ts3host, self.cfg.ts3port, self.cfg.ts3user, self.cfg.ts3pass, self, self.target, "info", message[1]) ts3client.start() except: self.connection.privmsg(self.target, self.m.MSG_ERR_GENERAL) elif message[0] == '!ban' and len(message) > 1: if self.reader != None: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) self.rcon.send("addIP " + c.ip) self.rcon.send("kick " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_BAN % (nick, c.coloredIrcNickname(), c.ip)) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except KeyError: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif (message[0] == '!banguid' or message[0] == '!permban') and len(message) > 2: if self.reader != None: try: if self.admins[event.source()] == 'admin': try: c = client.Client(-1) if message[1][0] == "#": ext_id = message[1].split("#")[1] ret = self.db.extInfo(int(ext_id)) c.guid = ret[2] c.name = ret[3] c.ip = ret[0] else: c = self.getClientObject(message[1]) guid = c.guid reason = ' '.join(message[2:]) id = self.db.getId(c.guid) try: self.db.permBan(id, reason, nick) except: self.connection.privmsg(self.target, self.m.MSG_ERR_DB) self.rcon.send("addIP " + c.ip) self.rcon.send("kick " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_BANGUID % (nick, c.coloredIrcNickname(), c.guid, c.ip, reason)) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!search' and len(message) > 1: try: if self.admins[event.source()] == 'admin': try: if len(message[1]) >= 3 and message[1].isalnum(): results = self.db.search(message[1]) output = self.m.MSG_SEARCH % (message[1]) + " " if len(results) > 40: output = output + self.m.MSG_ERR_SEARCH_RES else: for result in results: output = output + "(\x02#" + str(result[1]) + "\x02)" + result[0] + " " else: output = self.m.MSG_ERR_SEARCH self.connection.privmsg(self.target, output) except: print sys.exc_info() self.connection.privmsg(self.target, self.m.MSG_ERR_DB) except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!tempban' and len(message) > 2: try: if self.admins[event.source()] == 'admin': try: c = client.Client(-1) c = self.getClientObject(message[1]) id = self.db.getId(c.guid) duration = float(message[2]) if duration > 0.0: self.db.tempBan(id, duration, nick) self.rcon.send("kick " + message[1]) self.connection.privmsg(self.target, self.m.MSG_RCON_TEMPBAN % (nick, c.coloredIrcNickname(), str(duration))) except: self.connection.privmsg(self.target, self.m.MSG_ERR_DB) except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!extinfo' and len(message) > 1: try: if self.admins[event.source()] == 'admin': try: ret = self.db.extInfo(int(message[1])) try: (ip_ptr, alias, addr) = socket.gethostbyaddr(ret[0]) added = " [" + ip_ptr + "]" except: added = "" output = self.m.MSG_EXTINFO % (message[1], ret[3], ret[0], added, ret[2], str(ret[1])) self.connection.privmsg(self.target, output) except: print sys.exc_info() self.connection.privmsg(self.target, self.m.MSG_ERR_DB) except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN) elif message[0] == '!aliases' or message[0] == '!alias' and len(message) > 1: if self.reader != None: try: if self.admins[event.source()] == 'mod' or self.admins[event.source()] == 'admin': try: c = client.Client(-1) if message[1][0] == "#": ext_id = message[1].split("#")[1] ret = self.db.extInfo(int(ext_id)) c.guid = ret[2] c.name = ret[3] c.ip = ret[0] else: c = self.reader.clients[int(message[1])] guid = c.guid try: aliases = self.db.getAliases(guid) output = self.m.MSG_ALIASES % (c.coloredIrcNickname()) + " " if len(aliases) == 0: output = output + "None" self.connection.privmsg(self.target, output) else: i = 0 for alias in aliases: output = output + alias[0] + " " i = i + 1 if i == 10: self.connection.privmsg(self.target, output) i = 0 output = self.m.MSG_ALIASES % (c.coloredIrcNickname()) + " " time.sleep(1.0) if i != 0: self.connection.privmsg(self.target, output) except: print sys.exc_info() self.connection.privmsg(self.target, self.m.MSG_ERR_DB) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN_MOD) else: self.connection.privmsg(self.target, self.m.MSG_ERR_OBJECT) elif message[0] == '!info' and len(message) > 1: if self.reader != None: try: if self.admins[event.source()] == 'admin' or self.admins[event.source()] == 'mod': try: c = client.Client(-1) c = self.reader.clients[int(message[1])] output = self.m.MSG_INFO + " " + c.coloredIrcNickname() + " " ip = c.ip.split(':')[0] try: (ip_ptr, alias, addr) = socket.gethostbyaddr(ip) added = " [" + ip_ptr + "]" except: print sys.exc_info() added = "" output = output + "(" + c.ip + added + ", " + c.guid + ")" if self.cfg.geoEnabled: loc = Localization(self, c.ip, output, self.target) loc.start() else: self.connection.privmsg(self.target, output) except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN_MOD) else: self.connection.privmsg(self.target, self.m.MSG_ERR_OBJECT) elif message[0] == '!demo' and len(message) > 1: if self.reader != None: try: if self.admins[event.source()] == 'admin' or self.admins[event.source()] == 'mod': try: if len(message) >= 3: try: duration = int(message[2]) except: duration = 1 else: duration = 1 c = client.Client(-1) c = self.reader.clients[int(message[1])] output = self.m.MSG_DEMO + c.coloredIrcNickname() d = Demo(self, self.rcon, output, self.target, duration, c.id) d.start() except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID) except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN_MOD) else: self.connection.privmsg(self.target, self.m.MSG_ERR_OBJECT) elif message[0] == '!stamina' and len(message) > 2: if self.reader != None: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) output = self.m.MSG_RCON_STAMINA % (c.coloredIrcNickname(), message[2]) self.rcon.send("stamina " + message[1] + " " + message[2]) self.connection.privmsg(self.target, output); except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID); except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN); else: self.connection.privmsg(self.target, self.m.MSG_ERR_OBJECT); elif message[0] == '!wj' and len(message) > 2: if self.reader != None: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) output = self.m.MSG_RCON_WJ % (c.coloredIrcNickname(), message[2]) self.rcon.send("walljumps " + message[1] + " " + message[2]) self.connection.privmsg(self.target, output); except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID); except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN); else: self.connection.privmsg(self.target, self.m.MSG_ERR_OBJECT); elif message[0] == '!damage' and len(message) > 3: if self.reader != None: try: if self.admins[event.source()] == 'admin': try: c = self.getClientObject(message[1]) if message[2] == 'source' or message[2] == 'target': output = self.m.MSG_RCON_DAMAGE % (c.coloredIrcNickname(), message[2], message[3]) self.rcon.send("damage " + message[1] + " " + message[2] + " " + message[3]) self.connection.privmsg(self.target, output); else: self.connection.privmsg(self.target, self.m.MSG_ERR_PARAMS); except: self.connection.privmsg(self.target, self.m.MSG_ERR_CID); except: self.connection.privmsg(self.target, self.m.MSG_ERR_ADMIN); else: self.connection.privmsg(self.target, self.m.MSG_ERR_OBJECT);
class GuiEvent: def __init__(self, ui, mainWnd): self.ui = ui self.mainWnd = mainWnd # 默认视频源为相机 self.ui.radioButtonVideo.setChecked(True) self.isVideo = True # 信号槽设置 ui.open.clicked.connect(self.open) ui.close.clicked.connect(self.close) ui.radioButtonCam.clicked.connect(self.radioButtonCam) ui.radioButtonVideo.clicked.connect(self.radioButtonVideo) ui.find_video.clicked.connect(self.find_video) ui.find_output.clicked.connect(self.find_output) # 创建一个关闭事件并设为未触发 self.stopEvent = threading.Event() self.stopEvent.clear() self.ui.close.setEnabled(False) self.modes = init_models() print(" ") def callback_progress(self, percentage): self.ui.video_progressBar.setProperty("value", percentage * 100) def callback_video(self, image): image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) showImage = QtGui.QImage(image.data, image.shape[1], image.shape[0], QtGui.QImage.Format_RGB888) self.ui.DispalyLabel.setPixmap(QPixmap.fromImage(showImage)) if self.stopEvent.is_set(): # 关闭事件置为未触发,清空显示label self.stopEvent.clear() return True return False # self.ui.DispalyLabel.clear() # pix = QtGui.QPixmap.fromImage(showImage) # self.item = QGraphicsPixmapItem(pix) # 创建像素图元 # self.scene = QGraphicsScene() # 创建场景 # self.scene.addItem(self.item) # self.ui.graphicsView.setScene(self.scene) # 将场景添加至视图 def radioButtonCam(self): self.isVideo = False def radioButtonVideo(self): self.isVideo = True def find_video(self): self.fileName, self.fileType = QFileDialog.getOpenFileName( self.mainWnd, 'Choose file', '', '*') self.ui.input_video_path.setPlainText(self.fileName) def find_output(self): self.output_dir = QFileDialog.getExistingDirectory( self.mainWnd, 'Choose dir', '') self.ui.output_path.setPlainText(self.output_dir) self.output_video = os.path.join(self.output_dir, opt.default_output_name + '.avi') self.output_txt = os.path.join(self.output_dir, opt.default_output_name + '.txt') def open(self): self.ui.video_progressBar.setProperty("value", 0) self.ui.DispalyLabel.clear() self.stopEvent.clear() self.ui.close.setEnabled(True) self.ui.open.setEnabled(False) if self.isVideo: self.demo = Demo(self.fileName, self.output_video, self.output_txt, self.modes, self.callback_progress, self.callback_video, self.isVideo) else: self.rtsp_path = self.ui.input_camera_rtsp.toPlainText() self.demo = Demo(self.rtsp_path, self.output_video, self.output_txt, self.modes, callback_video=self.callback_video, is_video=self.isVideo) self.demo.start( ) # demo.start() 在执行open函数之后,就回收了,所以要使用self.demo,这样可以保留 def close(self): # 关闭事件设为触发,关闭视频播放 self.stopEvent.set() self.ui.open.setEnabled(True) self.ui.close.setEnabled(False)
def main(): demo = Demo() demo.start()
def main(): demo = Demo([1000, 600], "Raycast Simulation") demo.start()