def setProperties(self, description, actbox_name='', actbox_url='', actbox_category='global', props=None, REQUEST=None): ''' ''' if props is None: props = REQUEST self.description = str(description) for key in self.getAvailableCatalogVars(): # Populate var_matches. fieldname = 'var_match_%s' % key v = props.get(fieldname, '') if v: if not self.var_matches: self.var_matches = PersistentMapping() v = [ var.strip() for var in v.split(';') ] self.var_matches[key] = tuple(v) else: if self.var_matches and self.var_matches.has_key(key): del self.var_matches[key] self.actbox_name = str(actbox_name) self.actbox_url = str(actbox_url) self.actbox_category = str(actbox_category) g = Guard() if g.changeFromProperties(props or REQUEST): self.guard = g else: self.guard = None if REQUEST is not None: return self.manage_properties(REQUEST, 'Properties changed.')
def setProperties(self, description, actbox_name='', actbox_url='', actbox_category='global', props=None, REQUEST=None): ''' ''' if props is None: props = REQUEST self.description = str(description) for key in self.getAvailableCatalogVars(): # Populate var_matches. fieldname = 'var_match_%s' % key v = props.get(fieldname, '') if v: if not self.var_matches: self.var_matches = PersistentMapping() self.var_matches[key] = str(v) else: if self.var_matches and self.var_matches.has_key(key): del self.var_matches[key] self.actbox_name = str(actbox_name) self.actbox_url = str(actbox_url) self.actbox_category = str(actbox_category) g = Guard() if g.changeFromProperties(props or REQUEST): self.guard = g else: self.guard = None if REQUEST is not None: return self.manage_properties(REQUEST, 'Properties changed.')
def setProperties(self, title, new_state_id, trigger_type=TRIGGER_USER_ACTION, script_name='', after_script_name='', actbox_name='', actbox_url='', actbox_category='workflow', props=None, REQUEST=None, description=''): ''' ''' self.title = str(title) self.description = str(description) self.new_state_id = str(new_state_id) self.trigger_type = int(trigger_type) self.script_name = str(script_name) self.after_script_name = str(after_script_name) g = Guard() if g.changeFromProperties(props or REQUEST): self.guard = g else: self.guard = None self.actbox_name = str(actbox_name) self.actbox_url = str(actbox_url) self.actbox_category = str(actbox_category) if REQUEST is not None: return self.manage_properties(REQUEST, 'Properties changed.')
def setProperties(self, description, default_value='', default_expr='', for_catalog=0, for_status=0, update_always=0, props=None, REQUEST=None): ''' ''' self.description = str(description) self.default_value = str(default_value) if default_expr: self.default_expr = Expression(default_expr) else: self.default_expr = None g = Guard() if g.changeFromProperties(props or REQUEST): self.info_guard = g else: self.info_guard = None self.for_catalog = not not for_catalog # Pure boolean value self.for_status = not not for_status self.update_always = not not update_always if REQUEST is not None: return self.manage_properties(REQUEST, 'Properties changed.')
def setProperties(self, title, manager_bypass=0, props=None, REQUEST=None): """Sets basic properties. """ self.title = str(title) self.manager_bypass = manager_bypass and 1 or 0 g = Guard() if g.changeFromProperties(props or REQUEST): self.creation_guard = g else: self.creation_guard = None if REQUEST is not None: return self.manage_properties( REQUEST, manage_tabs_message='Properties changed.')
def add_piece(self, piece: Piece, position: Position, player: Player): """Adds a piece on the board.""" if piece.name == "King": if self.king_mask & 1 << player.value: return False else: self.king_mask |= 1 << player.value Guard.check_position(position, self.SIZE) piece.set_position(position) piece.set_player(player) self.board[piece.position.x][piece.position.y] = copy(piece)
def getGuard(self): """Returns the initiation guard. If no init guard has been created, returns a temporary object. """ if self.creation_guard is not None: return self.creation_guard else: return Guard().__of__(self) # Create a temporary guard.
def setProperties(self, description, default_value='', default_expr='', for_catalog=0, for_status=0, props=None, REQUEST=None): ''' ''' self.description = str(description) self.default_value = str(default_value) if default_expr: self.default_expr = Expression(default_expr) g = Guard() if g.changeFromProperties(props or REQUEST): self.info_guard = g else: self.info_guard = None self.for_catalog = not not for_catalog # Pure boolean value self.for_status = not not for_status if REQUEST is not None: return self.manage_properties(REQUEST, 'Properties changed.')
def checkGuardPart(self, part): test = part.strip() openGuardCount = 0 colonIndex = -1 qOpen = 0 for x in range(0, len(test)): if test[x] == '"': if qOpen == 1: qOpen = 0 else: qOpen = 1 if (test[x] == ':') and (openGuardCount == 1) and (qOpen == 0): if not (colonIndex == -1): print "Only one ':' is allowed, invalid command: " + test return False colonIndex = x elif test[x] == '[': openGuardCount = self.manageBrackets(openGuardCount, qOpen, 1) elif test[x] == ']': openGuardCount = self.manageBrackets(openGuardCount, qOpen, -1) if colonIndex == -1: print "Not a guard command: " + test + " is missing ':'." return False g = Guard(test[1:colonIndex], self.getParent()) c = Command(test[colonIndex + 1:len(test) - 1], self.getParent()) c.setSyntaxOnly(self.syntax_only) g.setSyntaxOnly(self.syntax_only) guardValue = g.checkSyntax() if guardValue == -1: #syntax problem return False elif guardValue == 0: #semantically wrong i.e. the "program" guard returns false c.setSyntaxOnly(True) return c.checkSyntax() elif guardValue == 1: #means we generally want to do what's after the guard return c.checkSyntax()
def setProperties(self, title, new_state_id, trigger_type=TRIGGER_USER_ACTION, script_name='', actbox_name='', actbox_url='', actbox_category='workflow', props=None, REQUEST=None): ''' ''' self.title = str(title) self.new_state_id = str(new_state_id) self.trigger_type = int(trigger_type) self.script_name = str(script_name) g = Guard() if g.changeFromProperties(props or REQUEST): self.guard = g else: self.guard = None self.actbox_name = str(actbox_name) self.actbox_url = str(actbox_url) self.actbox_category = str(actbox_category) if REQUEST is not None: return self.manage_properties(REQUEST, 'Properties changed.')
def setProperties(self, description, default_value='', default_expr='', for_catalog=0, for_status=0, update_always=0, props=None, REQUEST=None): ''' ''' self.description = str(description) self.default_value = str(default_value) if default_expr: self.default_expr = Expression(default_expr) else: self.default_expr = None g = Guard() if g.changeFromProperties(props or REQUEST): self.info_guard = g else: self.info_guard = None self.for_catalog = bool(for_catalog) self.for_status = bool(for_status) self.update_always = bool(update_always) if REQUEST is not None: return self.manage_properties(REQUEST, 'Properties changed.')
def __init__(self, labyrinth): """ initializing Game Manager """ self.labyrinth = labyrinth # player & guard positioning position_p = self.labyrinth.get_player_position() position_g = self.labyrinth.get_guard_position() self.MacGyver = Player(position_p[0], position_p[1]) self.guard = Guard(position_g[0], position_g[1]) # tools random positioning from an empty spaces list empty_spaces = self.labyrinth.get_empty_spaces() self.tools = [] self.symbols = ['E', 'N', 'T'] self.names = ['éther', 'aiguille', 'tube'] for idx, symbol in enumerate(self.symbols): tmp_pos = random.choice(empty_spaces) temp_tool = Tool(tmp_pos[0], tmp_pos[1], symbol, self.names[idx]) self.tools.append(temp_tool) empty_spaces.remove(tmp_pos) for tool in self.tools: self.labyrinth.write_symbol((tool.x, tool.y), tool.symbol)
def getGuard(self): if self.guard is not None: return self.guard else: return Guard() # Create a temporary guard.
def __init__(self): syslog(applicationInit) self.guard = Guard() self.hasher = Pkcs11Wrapper()
class Application: def __init__(self): syslog(applicationInit) self.guard = Guard() self.hasher = Pkcs11Wrapper() def computeReply(self, environ, request_body): ret = self.getRequestFromXml(request_body) requestor = self.getIpHash(environ) self.guard.check(requestor, ret) digest = self.hasher.hash((ret.id+ret.mothername).encode()) message = "<hash>{0}</hash>".format(digest).encode() status = okStatus return Reply(status, message) def createErrorReply(self): syslog(traceback.format_exc()) excInfo = sys.exc_info() message = bytes(excAnswer.format(excInfo[1], traceback.format_exc()).encode()) status = notAcceptableStatus return Reply(status, message) def getRequestSize(self, environ): try: request_body_size = int(environ.get('CONTENT_LENGTH', 0)) except (ValueError): request_body_size = 0 return request_body_size def application(self, environ, start_response): request_body_size = self.getRequestSize(environ) request_body = environ['wsgi.input'].read(request_body_size) try: reply = self.computeReply(environ, request_body) except: reply = self.createErrorReply() return reply.webReply(start_response) def getRequestFromXml(self,body): tree = XML(body) if 'request' != tree.tag: raise InputValidationException() r = record() for tag in tree.getchildren(): if tag.tag in ['id','mothername']: setattr(r,tag.tag,tag.text) if None is getattr(r,'id',None): raise InputValidationException() if None is getattr(r,'mothername',None): raise InputValidationException() return r def getIpHash(self,environ): ip=environ["REMOTE_ADDR"] digest = SHA512.SHA512Hash(ip.encode()).hexdigest() return digest def run(self): httpd = make_server('localhost', 8080, self.application) while True: httpd.handle_request()
def main(): # game setting pygame.time.Clock() pygame.display.init() # win setting pygame.display.set_caption("Chinese Chess") win = pygame.display.set_mode((win_width, win_height)) # generate pieces sprite of two side ( 0 for red, 1 for black ) sprites = [[Car(0, 0, 0), Horse(1, 0, 0), Elephant(2, 0, 0), Guard(3, 0, 0), King(4, 0, 0), Guard(5, 0, 0), Elephant(6, 0, 0), Horse(7, 0, 0), Car(8, 0, 0), Cannon(1, 2, 0), Cannon(7, 2, 0), Minion(0, 3, 0), Minion(2, 3, 0), Minion(4, 3, 0), Minion(6, 3, 0), Minion(8, 3, 0)], [Car(0, 9, 1), Horse(1, 9, 1), Elephant(2, 9, 1), Guard(3, 9, 1), King(4, 9, 1), Guard(5, 9, 1), Elephant(6, 9, 1), Horse(7, 9, 1), Car(8, 9, 1), Cannon(1, 7, 1), Cannon(7, 7, 1), Minion(0, 6, 1), Minion(2, 6, 1), Minion(4, 6, 1), Minion(6, 6, 1), Minion(8, 6, 1)]] kings = [sprites[0][4], sprites[1][4]] color, sprite, legal_move = 0, 0, [] draw_background(win, sprites, legal_move, color) print('>> Game Start!\n') run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False mouse_pos = pygame.mouse.get_pos() if kings[color] not in sprites[color]: if color == 0: print('Black Win!!') elif color == 1: print('Red Win!!') run = False teammates_loc = [] for teammate in sprites[color]: # Save teammate location to let inner function do specific delete of legal_move. teammates_loc.append([teammate.x, teammate.y]) # if [teammate.x, teammate.y] in legal_move: # legal_move.remove([teammate.x, teammate.y]) # you cannot overlap two pieces opponents_loc = [] for opponent in sprites[1 - color]: # Save enemy location to let inner function do specific delete of legal_move. opponents_loc.append([opponent.x, opponent.y]) if pygame.mouse.get_pressed()[0]: for sprite in sprites[color]: if 0 < mouse_pos[0] - sprite.rect[0] < 61 and 0 < mouse_pos[1] - sprite.rect[1] < 61: print('>> mouse_pos:', mouse_pos, 'sprite.rect: (', sprite.rect[0], ',', sprite.rect[1], ')') print('>> you picked up', sprite, ' at point', [sprite.x, sprite.y], 'color:', color, '\n') if id(sprite) == id(kings[color]): legal_move = sprite.show_legal_move(teammates_loc, opponents_loc, kings) else: legal_move = sprite.show_legal_move(teammates_loc, opponents_loc) choose = True # now choose a destination for your chosen piece if legal_move: print(">> you can choose a destination or you can press 'Esc' to choose another pieces.") while choose: pygame.event.pump() mouse_pos = pygame.mouse.get_pos() # keep track on mouse_pos and key_pressed key = pygame.key.get_pressed() for event in pygame.event.get(): if event.type == pygame.QUIT: run, choose = False, False if pygame.mouse.get_pressed()[0]: for move in legal_move: if 0 < mouse_pos[0] - board_position[move[1]][move[0]][0] < 61 and \ 0 < mouse_pos[1] - board_position[move[1]][move[0]][1] < 61: # update the coordinate system of sprite if move in opponents_loc: print('eat~\n') for piece in sprites[1 - color]: if move == [piece.x, piece.y]: print('deleted') sprites[1 - color].remove(piece) print(sprites[1-color]) else: print('>> move~\n') sprite.update_coordinate(move[0], move[1]) sprite, legal_move = 0, [] # reset all inner var for moving choose = False color = 1 - color if key[pygame.K_ESCAPE]: # back to choosing pieces process print('>> ESC pressed\n') sprite, legal_move = 0, [] # reset all inner var for moving choose = False draw_background(win, sprites, legal_move, color) else: print(">> There is no legal_move! Pick up another pieces.") draw_background(win, sprites, legal_move, color)
from Guard import Guard from Input import Input from Map import Map i = Input('maps/map.np') g = Guard(i.get_content()) g.read_map() map_, size = g.get_map m = Map(size, map_) print(type(m)) m.map = m.generate_map(0) print(type(m)) m.get_final_state()
def setup(self): # предустановки игры # препятствия self.blocks = arcade.SpriteList(use_spatial_hash=True) for block in sp_coordinates_obstacles: number = randint(1, 2) self.blocks.append( arcade.Sprite("images/obstacles/2-%d.png" % number, 1.5, center_x=self.permission[0] * block[0], center_y=self.permission[1] * block[1], hit_box_algorithm="Detailed")) #путь поезда self.paint_reils_way_flag = False self.way_file = 'train_way.txt' self.way_list = [] self.read_train_way() #поезд self.train = Train(0, 150, 12) #поле self.background = arcade.load_texture("images/земля.png") #персонаж self.people_list = arcade.SpriteList() self.player_sprite = Player() self.player_sprite.center_x = 400 self.player_sprite.center_y = 50 self.people_list.append(self.player_sprite) #охрана self.guards_list = arcade.SpriteList() for i in range(len(sp_coordinates_guards)): x, y = sp_coordinates_guards[i] self.guards_sprite = Guard(x, y) self.guards_sprite.barrier_list = arcade.AStarBarrierList( self.guards_sprite, self.blocks, 20, 0, window.get_size()[0], 0, window.get_size()[1]) self.guards_list.append(self.guards_sprite) self.people_list.append(self.guards_sprite) #пули self.bullet_list = arcade.SpriteList() hero = self.player_sprite self.mouse_pos = { 'x': hero.center_x, 'y': hero.center_y, 'dx': 0, 'dy': 0, 'button': 0 } #задаём координаты мышки #общий список self.all_sprites = arcade.SpriteList() self.all_sprites.extend(self.people_list) self.all_sprites.extend(self.bullet_list) self.train.append_all(self.all_sprites) #время self.time = 0 self.start_time = time.time() self.time_for_collision = time.time() #для работы перезарядки self.start_recharge = self.time #эта переменная для постоянной смены хитбоксов # 0 - нижняя четверть спрайта # 1 - весь спрайт self.index = 0
def setUp(self): self.guard=Guard()
class GuardTest(unittest.TestCase): def setUp(self): self.guard=Guard() def test_Guard_checks_id_len(self): with self.assertRaises(IncorrectIdException): self.guard.check("aaa",record("1720313399","testname")) def test_Guard_checks_id_sum(self): with self.assertRaises(IncorrectIdException): self.guard.check("aab",record("17203133958","testname")) def test_Guard_checks_id_chars(self): with self.assertRaises(IncorrectIdException): self.guard.check("aac",record("A7203133958","testname")) def test_Guard_check(self): self.guard.check("aaa",record("17203133959","testname")) with self.assertRaises(TooFrequentguestException): self.guard.check("aaa",record("17203133959","testname")) def test_young_people_id(self): self.guard.check("bbb",record("19903146758","testname")) def test_very_young_people_id(self): self.guard.check("ccc",record("40412044075","testname")) def test_mothername_should_not_contain_space(self): with self.assertRaises(IncorrectNameException): self.guard.checkName("contains space") def test_mothername_should_not_contain_anything_beyond_lower_ascii(self): for s in u""" ,?~!"#$%^&*()_+{}:|"<>?öüóőúéáűA\t\n""": name = u"contains%ssomething" % (s, ) with self.assertRaises(IncorrectNameException): self.guard.checkName(name) def test_mothername_should_not_be_too_long(self): with self.assertRaises(IncorrectNameException): self.guard.checkName("c"*51)
def getInfoGuard(self): if self.info_guard is not None: return self.info_guard else: return Guard().__of__(self) # Create a temporary guard.