Example #1
0
    def __init__(self, centroids):
        self.centroids = centroids
        Centroid.centroids = centroids

        Bounds(centroids)

        Border.reset()  # starting over each frame
        Centroid.reset()  # starting over each frame

        l = len(Centroid.centroids)

        for n1 in range(1, len(Centroid.centroids)):
            print '%i/%i' % (n1, l)
            c1 = Centroid.centroids[n1]
            # dist-sort, & break when c1 in enclosed
            others = DistSort(c1, [Centroid.centroids[n2] for n2 in range(n1)])
            B = []
            for c2 in others:
                b = Border(c1, c2)
                for bb in B:
                    if bb.nIntersects < 2:
                        i = b.validate_BorderBorderIntersectPoint(bb)
                        if i and b.nIntersects == 2:
                            break
                B.append(b)
                if {bb.nIntersects for bb in B} == {2}:
                    break

        for c in Centroid.centroids:
            if not c.isClosed:
                c.addCornerVert()
Example #2
0
    def __bounded_search(self, prob, strategy, max_depth):
        """
        Method required to do the bounded search. It uses a border, a queue of Nodes that
        have to be checked.

        :param prob: Problem Object, used to know if a Node is solution, and get successors.
        :param strategy: String, Strategy to follow, to get a solution
        :param max_depth: Integer, Maximum depth that the search tree must reach.
        :return: The solution, a list of successors to get the objective Node. If the algorithm
        doesn't find a solution, it returns None.
        """
        border = Border()
        closed_list = {}   # List needed to prune the tree
        initial_node = Node(prob.initial_state(), 0, None, 0, None, 0)
        border.InsertNode(initial_node)

        #closed_list[initial_node.get_state().__str__()] = initial_node.get_value()
        sol = False
        while not sol and not border.IsEmpty():
            actual_node = border.Delete()
            if strategy == 'BFS' or strategy == 'DFS':
                closed_list[actual_node.get_state().__str__()] = actual_node.get_cost()
            else:
                closed_list[actual_node.get_state().get_unique_representation()] = actual_node.get_value()

            if prob.goal_state(actual_node.get_state()):
                actual_node.get_state().print_terrain()
                sol = True
            else:
                if actual_node.get_depth() < max_depth:
                    successors_list = prob.successors(actual_node.get_state())
                    for successor in successors_list:
                        new_node = actual_node.create_node(successor, actual_node, strategy, max_depth,prob)
                        # Prune the tree
                        if strategy == 'BFS' or strategy == 'DFS':
                            if new_node.get_state().get_unique_representation() not in closed_list:
                                border.InsertNode(new_node)
                                closed_list[new_node.get_state().get_unique_representation()] = new_node.get_cost()
                            else:
                                if closed_list[new_node.get_state().get_unique_representation()] > new_node.get_cost():
                                    closed_list[new_node.get_state().get_unique_representation()] = new_node.get_cost()
                                    border.InsertNode(new_node)
                        else:
                            if new_node.get_state().get_unique_representation() not in closed_list:
                                border.InsertNode(new_node)
                                closed_list[new_node.get_state().get_unique_representation] = new_node.get_value()
                            else:
                                if closed_list[new_node.get_state().get_unique_representation()] > new_node.get_value():
                                    closed_list[new_node.get_state().get_unique_representation()] = new_node.get_value()
                                    border.InsertNode(new_node)



        if sol:
            print('El costo de la solución es: '+ str(actual_node.get_cost()))
            print('La profundidad es: ' + str(actual_node.get_depth()))
            return self.__create_solution(actual_node)
        else:
            return None
Example #3
0
File: Table.py Project: nza3552/AIB
    def __init__(self):
        self.screen = pygame.display.set_mode((1050, 450))
        self.screen.fill((255, 255, 255))
        self.space = pymunk.Space()
        self.clock = pygame.time.Clock()

        # self.moment = pymunk.moment_for_box(1000000, (800,400))
        # self.body = pymunk.Body(1000000, self.moment)
        # self.shape = pymunk.Poly(self.body, ((0,0), (800,0),(800,400), (0,400)))
        # # self.shape.friction = 0
        # self.body.position = (0,0)
        # self.space.add(self.body, self.shape)
        self.space.damping = 0.8
        self.textStatus = "Angle"
        self.angle = 0
        self.power = 0
        self.angleEntered = False
        self.powerEntered = False
        self.label = pygame.font.Font(None, 32)
        self.textinput = TextInput()

        p1 = Pocket(self.space, (24, -12), math.pi / 4)
        p2 = Pocket(self.space, (24, -12 + 402), math.pi / 4)
        p3 = Pocket(self.space, (24 + 802, -12), math.pi / 4)
        p4 = Pocket(self.space, (24 + 802, -12 + 402), math.pi / 4)
        p5 = Pocket(self.space, (400, -25), 0)
        p6 = Pocket(self.space, (400, 425), 0)

        b1 = Border(self.space, (0, 415), 0)
        b2 = Border(self.space, (0, -35), 1)
        b3 = Border(self.space, (0, -35 - 380 - 20), 1)
        b4 = Border(self.space, (-850, -35), 2)
        b5 = Border(self.space, (-450 - 1, 415), 3)
        b6 = Border(self.space, (-450 - 1, 415 + 380 + 20), 3)
Example #4
0
    def __init__(self,
                 type='frame',
                 left=0,
                 top=0,
                 width=0,
                 height=0,
                 bg_color=None,
                 fg_color=None,
                 selected_bg_color=None,
                 selected_fg_color=None,
                 border=None,
                 bd_color=None,
                 bd_width=None,
                 vertical_expansion=0):

        GUIObject.__init__(self, left, top, width, height, bg_color, fg_color)

        self.layout_manager = None
        self.border = border
        self.bd_color = bd_color
        self.bd_width = bd_width
        self.vertical_expansion = vertical_expansion

        self.internal_h_align = Align.LEFT
        self.internal_v_align = Align.TOP
        self.h_spacing = self.h_margin
        self.v_spacing = self.v_margin

        if type == 'widget':
            ci = self.content_layout.types['selected'].rectangle
            self.selected_bg_color = selected_bg_color or Color(ci.bgcolor)
            self.selected_fg_color = selected_fg_color or Color(ci.color)

            if not self.bd_color:
                self.bd_color = Color(self.skin_info_widget.rectangle.color)

            if not self.bd_width:
                self.bd_width = self.skin_info_widget.rectangle.size

            if not self.border:
                self.border = Border(self, Border.BORDER_FLAT, self.bd_color,
                                     self.bd_width)

            elif border == -1:
                self.border = None
Example #5
0
 def init(self):
     pygame.mixer.music.load('music/snakeMusic.mp3')
     pygame.mixer.music.play(-1)
     self.bgColor = (255, 255, 255)
     self.gameOver = True
     # Snake
     Snake.init()
     self.snakeGroup = pygame.sprite.Group()
     self.snakeList = []
     # Snake movement
     self.counter = 0
     self.isMoveRight = True
     self.snakeLength = 4
     self.snakeSize = 14
     self.timer = 0
     # Border
     Border.init()
     self.blockGroup = pygame.sprite.Group()
     # Barrier
     Barrier.init()
     self.barrierGroup = pygame.sprite.Group()
     self.collideBarrier = (0, 0)
     self.points = 0
     # Food
     Food.init()
     # Block
     Block.init()
     # Initialize the snakeGroup
     for i in range(self.snakeLength):
         snake = Snake(self.width // 2,
                       self.height // 2 + self.snakeSize * i)
         self.snakeGroup.add(snake)
         self.snakeList.append(snake)
     # Initialize the foodGroup
     self.foodGroup = pygame.sprite.Group()
     # Initialize the borderGroup
     self.borderGroup = pygame.sprite.Group(
         Border(self.width // 2, self.height + 300, self.width,
                self.height))
     # GameOver Image
     self.GGImage = pygame.image.load('images/gameover.png').convert_alpha()
     self.GGImage = pygame.transform.scale(self.GGImage, (1920, 1080))
     self.GGrect = self.GGImage.get_rect()
Example #6
0
 def __init__(self, node):
     '''
 Load a room object from the XML
 A room contains lists of items and borders
 '''
     self.name = node.find("name").text
     if node.find("action") != None:
         self.action = node.find("action").text
     else:
         self.action = None
     self.description = node.find("description").text
     self.items = []
     # Get items list
     for i in node.findall("./item"):
         self.items.append(i.text + "\n")
     # get borders
     self.borders = []
     for i in node.findall("./border"):
         b = Border(i)
         self.borders.append(b)
Example #7
0
    def __init__(self, gui, players, game_mode):
        """
        Constructor.

        :param gui:        The game's Graphical User Interface
        :param players:    A list of the players currently playing in the round
        :param game_mode:  The current game mode (either 'singleplayer' or 'multiplayer')
        """
        self.__gui = gui
        self.__clock = pygame.time.Clock()
        self.__players = players
        self.__game_mode = game_mode
        self.__foods = []
        self.__border = Border(SCREEN_SIZE, GRID_SIZE)
        self.__score_bar = ScoreBar((15, 10))
        self.__high_score_bar = HighScoreBar((125, 10))
        pygame.joystick.init()

        # NOTE: --- Change the amount of food that is on the screen here (max is 2000) ---
        food_amt = 4
        for i in range(food_amt):
            self.__foods.append(Food(self.get_rand_pos()))
Example #8
0
    def __init__(self, root):

        # 地图投影
        self.projection = Projection(root[0])

        # 边界集合
        bordersleaf = root[0].find('Borders').getchildren()
        self.borders = []
        for borderleaf in bordersleaf:
            self.borders.append(Border(borderleaf))

        # clip区域集合
        clipsleaf = root[0].find('ClipBorders').getchildren()
        self.clipborders = []
        for clipleaf in clipsleaf:
            self.clipborders.append(ClipBorder(clipleaf))

        # 站点文件
        from Stations import Stations
        self.stations = Stations(root[0])

        pass
Example #9
0
display.fill(Colors.WHITE)

#GeneratePlayers
ComputerPlayer = Player(Colors.BLUE, Constants.RACKET_OFFSET,
                        Constants.RACKET_START_HEIGHT, Constants.RACKET_WIDTH,
                        Constants.RACKET_HEIGHT, display, False)

HumanPlayer = Player(
    Colors.BLUE,
    Constants.DISPLAY_WIDTH - Constants.RACKET_OFFSET - Constants.RACKET_WIDTH,
    Constants.RACKET_START_HEIGHT, Constants.RACKET_WIDTH,
    Constants.RACKET_HEIGHT, display, True)

Ball = PongBall(Colors.RED, Constants.PONG_START_X, Constants.PONG_START_Y,
                Constants.PONG_RADIUS, display)
Border = Border(Constants.BORDER_X, Constants.BORDER_Y)

Grid = EventManager(ComputerPlayer, HumanPlayer, Ball, display)
# Run until the user asks to quit
FPS = 25
clock = pygame.time.Clock()
running = True
pressed_up = False
pressed_down = False

while running:
    #Did the user click the window close button?
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:  # check for key presses
Example #10
0
def initMap(map):
    # map.states.append("North Carolina")
    # map.states.append("South Carolina")
    # map.states.append("Virginia")
    # map.states.append("Tennessee")
    # map.states.append("Kentucky")
    # map.states.append("West Virginia")
    # map.states.append("Georgia")
    # map.states.append("Alabama")
    # map.states.append("Mississippi")
    # map.states.append("Florida")
    #
    # map.borders.append(Border(0, 1))
    # map.borders.append(Border(0, 2))
    # map.borders.append(Border(0, 3))
    # map.borders.append(Border(0, 6))
    # map.borders.append(Border(1, 6))
    # map.borders.append(Border(2, 3))
    # map.borders.append(Border(2, 4))
    # map.borders.append(Border(2, 5))
    # map.borders.append(Border(3, 4))
    # map.borders.append(Border(3, 6))
    # map.borders.append(Border(3, 7))
    # map.borders.append(Border(3, 8))
    # map.borders.append(Border(4, 5))
    # map.borders.append(Border(6, 7))
    # map.borders.append(Border(6, 9))
    # map.borders.append(Border(7, 8))
    # map.borders.append(Border(7, 9))
    ##################################################51 states#########################################
    map.states.append("AK")  # 0
    map.borders.append(Border(0, 1))
    map.states.append("WA")  # 1
    map.borders.append(Border(1, 2))
    map.borders.append(Border(1, 3))
    map.states.append("ID")  # 2
    map.borders.append(Border(2, 4))
    map.borders.append(Border(2, 5))
    map.borders.append(Border(2, 6))
    map.borders.append(Border(2, 7))
    map.borders.append(Border(2, 3))
    map.states.append("OR")  # 3
    map.borders.append(Border(3, 7))
    map.borders.append(Border(3, 8))
    map.states.append("MT")  # 4
    map.borders.append(Border(4, 9))
    map.borders.append(Border(4, 10))
    map.borders.append(Border(4, 5))
    map.states.append("WY")  # 5
    map.borders.append(Border(5, 10))
    map.borders.append(Border(5, 11))
    map.borders.append(Border(5, 12))
    map.borders.append(Border(5, 6))
    map.states.append("UT")  # 6
    map.borders.append(Border(6, 12))
    map.borders.append(Border(6, 13))
    map.borders.append(Border(6, 14))
    map.borders.append(Border(6, 7))
    map.states.append("NV")  # 7
    map.borders.append(Border(7, 14))
    map.borders.append(Border(7, 8))
    map.states.append("CA")  # 8
    map.borders.append(Border(8, 14))
    map.borders.append(Border(8, 15))
    map.states.append("ND")  # 9
    map.borders.append(Border(9, 16))
    map.borders.append(Border(9, 10))
    map.states.append("SD")  # 10
    map.borders.append(Border(10, 16))
    map.borders.append(Border(10, 17))
    map.borders.append(Border(10, 11))
    map.states.append("NE")  # 11
    map.borders.append(Border(11, 17))
    map.borders.append(Border(11, 19))
    map.borders.append(Border(11, 18))
    map.borders.append(Border(11, 12))
    map.states.append("CO")  # 12
    map.borders.append(Border(12, 19))
    map.borders.append(Border(12, 20))
    map.borders.append(Border(12, 13))
    map.borders.append(Border(12, 14))
    map.states.append("NM")  # 13
    map.borders.append(Border(13, 20))
    map.borders.append(Border(13, 21))
    map.borders.append(Border(13, 14))
    map.states.append("AZ")  # 14

    map.states.append("HI")  # 15

    map.states.append("MN")  # 16
    map.borders.append(Border(16, 22))
    map.borders.append(Border(16, 17))
    map.states.append("IA")  # 17
    map.borders.append(Border(17, 22))
    map.borders.append(Border(17, 23))
    map.borders.append(Border(17, 18))
    map.states.append("MO")  # 18
    map.borders.append(Border(18, 23))
    map.borders.append(Border(18, 24))
    map.borders.append(Border(18, 25))
    map.borders.append(Border(18, 20))
    map.borders.append(Border(18, 19))
    map.states.append("KS")  # 19
    map.borders.append(Border(19, 20))
    map.states.append("OK")  # 20
    map.borders.append(Border(20, 26))
    map.borders.append(Border(20, 21))
    map.states.append("TX")  # 21
    map.borders.append(Border(21, 26))
    map.borders.append(Border(21, 27))
    map.states.append("WI")  # 22
    map.borders.append(Border(22, 28))
    map.borders.append(Border(22, 23))
    map.states.append("IL")  # 23
    map.borders.append(Border(23, 29))
    map.borders.append(Border(23, 24))
    map.states.append("KY")  # 24
    map.borders.append(Border(24, 30))
    map.borders.append(Border(24, 31))
    map.borders.append(Border(24, 32))
    map.borders.append(Border(24, 25))
    map.borders.append(Border(24, 29))
    map.states.append("TN")  # 25
    map.borders.append(Border(25, 32))
    map.borders.append(Border(25, 33))
    map.borders.append(Border(25, 33))
    map.borders.append(Border(25, 34))
    map.borders.append(Border(25, 35))
    map.borders.append(Border(25, 36))
    map.borders.append(Border(25, 26))
    map.states.append("AR")  # 26
    map.borders.append(Border(26, 36))
    map.borders.append(Border(26, 27))
    map.states.append("LA")  # 27
    map.borders.append(Border(27, 36))
    map.states.append("MI")  # 28
    map.borders.append(Border(28, 30))
    map.borders.append(Border(28, 29))
    map.states.append("IN")  # 29
    map.borders.append(Border(29, 30))
    map.states.append("OH")  # 30
    map.borders.append(Border(30, 37))
    map.borders.append(Border(30, 31))
    map.states.append("WV")  # 31
    map.borders.append(Border(31, 37))
    map.borders.append(Border(31, 38))
    map.borders.append(Border(31, 32))
    map.states.append("VA")  # 32
    map.borders.append(Border(32, 38))
    map.borders.append(Border(32, 39))
    map.borders.append(Border(32, 33))
    map.states.append("NC")  # 33
    map.borders.append(Border(33, 40))
    map.borders.append(Border(33, 34))
    map.states.append("GA")  # 34
    map.borders.append(Border(34, 40))
    map.borders.append(Border(34, 41))
    map.borders.append(Border(34, 35))
    map.states.append("AL")  # 35
    map.borders.append(Border(35, 41))
    map.borders.append(Border(35, 36))
    map.states.append("MS")  # 36

    map.states.append("PA")  # 37
    map.borders.append(Border(37, 42))
    map.borders.append(Border(37, 44))
    map.borders.append(Border(37, 43))
    map.borders.append(Border(37, 38))
    map.states.append("MD")  # 38
    map.borders.append(Border(38, 44))
    map.borders.append(Border(38, 39))
    map.states.append("DC")  # 39

    map.states.append("SC")  # 40

    map.states.append("FL")  # 41

    map.states.append("NY")  # 42
    map.borders.append(Border(42, 45))
    map.borders.append(Border(42, 46))
    map.borders.append(Border(42, 47))
    map.borders.append(Border(42, 43))
    map.states.append("NJ")  # 43
    map.borders.append(Border(43, 47))
    map.borders.append(Border(43, 44))
    map.states.append("DE")  # 44

    map.states.append("VT")  # 45
    map.borders.append(Border(45, 48))
    map.borders.append(Border(45, 46))
    map.states.append("MA")  # 46
    map.borders.append(Border(46, 48))
    map.borders.append(Border(46, 47))
    map.borders.append(Border(46, 49))
    map.states.append("CT")  # 47
    map.borders.append(Border(47, 49))
    map.states.append("NH")  # 48
    map.borders.append(Border(48, 50))
    map.states.append("RI")  # 49
    map.states.append("ME")  # 50 
from Tail import Tail
from sketch import Sketch

delay = 0.001
start_tail = 1
score = 0
# Set up the screen
screen = turtle.Screen()
screen.setup(width=1000, height=600)

# SNAKE PART
# Snake head
snake = Snake()
snakehead = snake.snakehead()
# long border
bor = Border()
border = bor.setUpBorder()
# Snake tail
segments = []
# Paddle
# You can move the paddle with 'z' and 's'
pad = Paddle()
paddle = pad.paddle()
# Ball of circle shape
Ball = Ball()

# Global part
#Sets key bindings to the right thing.
bindings = Bindings(screen, snakehead, paddle)
bindings.Keyboard_bindings()
#movement of the snakehead
Example #12
0
def initMap(map):
    map.states.append("North Carolina")
    map.states.append("South Carolina")
    map.states.append("Virginia")
    map.states.append("Tennessee")
    map.states.append("Kentucky")
    map.states.append("West Virginia")
    map.states.append("Georgia")
    map.states.append("Alabama")
    map.states.append("Mississippi")
    map.states.append("Florida")

    map.borders.append(Border(0, 1))
    map.borders.append(Border(0, 2))
    map.borders.append(Border(0, 3))
    map.borders.append(Border(0, 6))
    map.borders.append(Border(1, 6))
    map.borders.append(Border(2, 3))
    map.borders.append(Border(2, 4))
    map.borders.append(Border(2, 5))
    map.borders.append(Border(3, 4))
    map.borders.append(Border(3, 6))
    map.borders.append(Border(3, 7))
    map.borders.append(Border(3, 8))
    map.borders.append(Border(4, 5))
    map.borders.append(Border(6, 7))
    map.borders.append(Border(6, 9))
    map.borders.append(Border(7, 8))
    map.borders.append(Border(7, 9))