Esempio n. 1
0
 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.')
Esempio n. 2
0
 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.')
Esempio n. 3
0
 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.')
Esempio n. 4
0
    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.')
Esempio n. 5
0
 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.')
Esempio n. 6
0
 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)
Esempio n. 8
0
    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.
Esempio n. 9
0
 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.')
Esempio n. 10
0
    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()
Esempio n. 11
0
 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.')
Esempio n. 12
0
    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.')
Esempio n. 13
0
    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)
Esempio n. 14
0
 def getGuard(self):
     if self.guard is not None:
         return self.guard
     else:
         return Guard()  # Create a temporary guard.
Esempio n. 15
0
 def __init__(self):
     syslog(applicationInit)
     self.guard = Guard()
     self.hasher = Pkcs11Wrapper()
Esempio n. 16
0
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()
Esempio n. 17
0
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)
Esempio n. 18
0
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()
Esempio n. 19
0
    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
Esempio n. 20
0
 def setUp(self):
     self.guard=Guard()
Esempio n. 21
0
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)
Esempio n. 22
0
 def getInfoGuard(self):
     if self.info_guard is not None:
         return self.info_guard
     else:
         return Guard().__of__(self)  # Create a temporary guard.