Esempio n. 1
0
    def testPolylineSerialize(self):
        map = Map()
        map.open(os.path.join(self.testdatadir, "00map.ini"))

        streets = map.getLayerByName("00_Streets")
        streets.open("r")

        cell = streets.getCell(1)

        street = cell.getCellElements()[0]

        expected = getCellElementRawData(streets, 1, 0)


        actual = street.serialize(cell)

        if actual != expected:
            print "Expected:", dump(expected)
            print "Actual:  ", dump(actual)

        outstreet = CellElementPolyline(streets)
        outstreet.deSerialize(cell, actual)

        self.assertEqual(street,outstreet)
        self.assertEqual(len(actual), len(expected))
        self.assertEqual(actual, expected)
Esempio n. 2
0
class Game(object):

    def __init__(self):
        self.TITLE = "TEST (by zeeisl)"
        self.WIDTH = 800
        self.HEIGHT = 600
        
        self.controller = Controller()
        
        # game things
        self.char = Player("res//hero.png")
        self.map = Map()
        
        self.char1 = Character("res//hero.png", 100, 100, 32, 32)
        
    def key_input(self, event):
        self.controller.getButtonStates(event)
        self.char.key_input(event)
    
    def update(self, delta):
        self.map.update()
        self.char.update(self.char1)
        self.char1.update()
    
    def render(self, screen):
        self.map.render(screen)
        self.char.render(screen)
        self.char1.render(screen)
Esempio n. 3
0
def newTak():
	name = getValue(request, "name", None)
	uid = getValue(request, "userid", None)
	lat = getValue(request, "lat", None)
	lng = getValue(request, "lng", None)
	if not ( name and lat and lng and uid):
		return json_response(code=400)
	mapid = getValue(request, "mapid", None)
	map = None
	if uid is not None:
		user = Account.get_by_id(int(uid))
		if user is None:
			return json_response(code=400)
	if mapid is not None:
		map = Map.get_by_id(int(mapid))
	if map is None:
		map = Map(creator=user.name,creatorId=int(uid),name='Untitled',adminIds=[int(uid)])
		key = map.put()
		mapid = key.id()
		account = Account.get_by_id(int(uid))
		account.adminMaps.append(int(mapid))
		account.put()
	tak  = Tak(lng=lng,lat=lat, creator=user.name, name=name,mapId=int(mapid),creatorId=int(uid))
	key = tak.put()
	map.takIds.append(key.integer_id())
	map.put();
	return json_success(tak.Get())
Esempio n. 4
0
def main():
    # initialize map
    map = Map()

    player = AIPlayer(map)
    map.setPlayer(player)

    map.mapLoop() # map's main loop event
Esempio n. 5
0
class ActionPhase:
    """
    Handling the Action Phase of the game
    """
    def __init__(self, screen, player_list):
        self.player_list = player_list
        self.map = Map(player_list, size=3)
        self.map.create_map()
        self.map.draw_tiles(screen)
        self.map.draw_hex_positions(screen)

        # Make sure initiative order is up to date
        agenda_order = []
        for player in player_list:
            player.update_initiative_order()
            agenda_order.append(player.get_initiative_order())

        # Reorganizing the player iteration in initiative (absolute bloodbath)
        iterable = self.player_list.sprites()
        player_list = pygame.sprite.Group()
        for i in np.argsort(agenda_order):
            player_list.add(iterable[i])
            # iterable[i].remove(self.player_list) # the sprite is in two groups i dont know what that means
        self.player_list = player_list
        self.player_list_cycle = cycle(self.player_list)
        self.current_player = next(self.player_list_cycle)
        self.turn_controller = TurnController(
            current_player=self.current_player)
        self.user_interface = UserInterface(current_player=self.current_player)

    def move_to_next_player(self):
        self.current_player = next(self.player_list_cycle)
        self.user_interface.change_main_color(self.current_player.color)

    def handle_event(self, screen, event):
        pass

    def update(self, screen):
        # Updating MAP on hover
        for tile in self.map.tiles:
            r_hex = tile.image.get_rect(topleft=tile.pos)
            if r_hex.collidepoint(pygame.mouse.get_pos()):
                tile.update(pos=tile.pos, image=tile.image, color=BLACK)
            else:
                tile.update(pos=tile.pos, image=tile.image, color=WHITE)
        self.map.tiles.draw(screen)
        self.map.draw_players(screen)
        self.draw_units(screen)
        self.map.draw_hex_positions(screen)
        self.user_interface.draw(screen)

    def erase(self, screen):
        pass

    def draw_units(self, screen):
        for this_player in self.player_list:
            this_player.draw_units(screen)
Esempio n. 6
0
 def setNewInput(self, inp: str):
     self.pfEnd()
     self.running = False
     self.started = False
     self.finished = False
     self.states = deque()
     self.paths = []
     self.currentStateIndex = -1
     self.map = Map(inp)
Esempio n. 7
0
def main():
    map = Map()
    try:
        map.get_random_map(MAPS_PATH)
    except MapError as e:
        print("Map error:", e)
        exit(FAILURE)  # TODO: Handle multiple map loading retries etc...
    core = Core(map)
    core.run()
Esempio n. 8
0
class OpenAnt(QApplication):
    
    def __init__(self):
        QApplication.__init__(self, sys.argv)
        
        # Set the default background color to a darker grey.
        self.setPalette(QPalette(self.palette().button().color(), QColor(192, 192, 192)))
    
        self.window = MainWindow()
        self.window.show()
        self.window.start()
        self.window.setWindowTitle('OpenAnt')
        
        # Game timer, used in the gameloop FPS calculations.
        self.game_timer = QTime()
        self.game_timer.start()
        
        # Draw map, set view to ground.
        self.map = Map()
        Globals.view = self.map.generateMap()
        self.map.spawnAnts()
        
        # Start the main loop.
        self.gameLoop()
        
    def gameLoop(self):
        TICKS_PER_SECOND = 20
        SKIP_TICKS = 1000 / TICKS_PER_SECOND
        MAX_FRAMESKIP = 5
        
        next_game_tick = self.getTickCount()
        Globals.game_is_running = True
        while Globals.game_is_running:
            loops = 0
            while self.getTickCount() > next_game_tick and loops < MAX_FRAMESKIP:
                self.updateGame()
                next_game_tick += SKIP_TICKS
                loops += 1
            interpolation = float(self.getTickCount() + SKIP_TICKS - next_game_tick) / float(SKIP_TICKS)
            self.updateDisplay(interpolation)

    def updateDisplay(self, interpolation):
       
        #lerp away
        if not 'nolerp' in sys.argv:
            if self.map.yellowAnt.moving:
                self.map.yellowAnt.lerpMoveSimple(interpolation)

        Globals.glwidget.updateGL()
        self.processEvents() # Let Qt process its events.

    def getTickCount(self):
        return self.game_timer.elapsed()

    def updateGame(self):
        self.map.update()
Esempio n. 9
0
    def run(self):
        current_dir = os.path.dirname(os.path.abspath(__file__))
        image_path = os.path.join(current_dir, "car.png")
        car_image = pygame.image.load(image_path)
        scale = 40
        car = Car(6 * scale, 5 * scale, angle=70)
        map = Map(scale)
        agent = Agent()

        while not self.exit:
            # print(car.position, car.angle)

            # Event queue
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.exit = True
            # Logic
            car.update()
            # print("Car angle: ", car.angle)

            # Drawing
            self.screen.fill((0, 0, 0))
            map.draw(self.screen, [0, 255, 0])

            # draw inside

            distance_vec = []

            distance_point_tuples = car.calculate_distances(map)
            for distance, point in distance_point_tuples:
                print(f"Distance: {distance}")
                distance_vec.append(distance)
                if distance < 10:
                    # COLISION!
                    car = Car(6 * scale, 5 * scale)
                pygame.draw.circle(self.screen, [255, 0, 0],
                                   [int(el) for el in point], 5)

            rotated = pygame.transform.rotate(car_image, car.angle)
            rect = rotated.get_rect()
            self.screen.blit(rotated,
                             car.position - (rect.width / 2, rect.height / 2))
            pygame.display.flip()

            # User input
            pressed = pygame.key.get_pressed()

            choice = agent.get_choice(np.array(distance_vec).reshape(1, -1))

            if choice == 1:
                car.angle = (car.angle - 2) % 360
            elif choice == 0:
                car.angle = (car.angle + 2) % 360

            self.clock.tick(self.ticks)
        pygame.quit()
Esempio n. 10
0
    def testSimple(self):
        map = Map(MapDirectory(self.testdatadir), maptype=MapTypeImage)
        map.open('r')

        poigroup = map.getPOIGroup()
        poigroup.open('r')

        f = poigroup.getFeatureByIndex(0)
        aux = f.getAuxAsDict(poigroup)
        print f, aux
Esempio n. 11
0
def main():
    print ("Main called")
    c1 = Coordinate(0,0,0)
    c2 = Coordinate(10,10,10)
    m = Map()
    print ("begin mapping")
    carl = m.map_1D_space(c1,c2,5)
    print ("endin mapping")
    for index, item in enumerate(carl):
        print (''+str(index)+' '+str(item.coordinate.x)+' '+str(item.coordinate.y)+' '+str(item.coordinate.z))
Esempio n. 12
0
 def __init__(self):
     global PIXEL
     pygame.init()
     self.__map = Map()
     self.__dim = self.__map.getDimensions
     self.__canvas = pygame.display.set_mode(
         [self.__dim[0] * PIXEL, self.__dim[1] * PIXEL])
     self.__beings = list()
     self.__reloj = pygame.time.Clock()
     pygame.display.set_caption('Artificial Intelligence')
Esempio n. 13
0
    def testSimple(self):
        map = Map(MapDirectory(self.testdatadir), maptype=MapTypeImage)
        map.open("r")

        poigroup = map.getPOIGroup()
        poigroup.open("r")

        f = poigroup.getFeatureByIndex(0)
        aux = f.getAuxAsDict(poigroup)
        print f, aux
Esempio n. 14
0
 def buttonGenerateCircle(self):
     self.contenueVille = self.nbreVille.get()
     #Map creation
     self.actualMap = Map(int(self.contenueVille,base=10),500,0) 
     tab = self.actualMap.creatMapCircle()
     self.canvas.delete("all")
     self.canvas.create_rectangle(0, 0, 500, 500, fill='dark slate grey')
     
     for i in range(len(tab)):
         self.placePoint(tab[i][0],tab[i][1])
Esempio n. 15
0
 def setup(self):
     ## Создаем карту
     self.game_map = Map(1000, 1000, 1000, 1000, self)
     self.mul = Multiplayer(self.game_map)
     ## Создаем игрока
     self.game_map.spawnPlayer("player.png", self.nickname, 50)
     self.calc_thread = Thread(target=self.game_map.update)
     self.gui_thread = Thread(target=self.GUI)
     self.calc_thread.start()
     self.gui_thread.start()
Esempio n. 16
0
def corners_from_bounds(p1, p2, sides, center, radius, width, depth):
    corner_vectors = []
    lines = []
    for i in range(0, sides):
        v1 = vg.point_along_circle(center, radius, sides, i, Map(align_to_cells=True, width=width, depth=depth, p1=p1, p2=p2))
        v2 = vg.point_along_circle(center, radius, sides, i+1, Map(align_to_cells=True, width=width, depth=depth, p1=p1, p2=p2))
        corner_vectors.append(v1)
        lines.append((v1, v2))

    return corner_vectors, lines
Esempio n. 17
0
    def __init__(self, zones, options=Map()):
        self.style = options.style
        self.buildings = []
        self.zones = []

        for part in zones:
            self.zones.append(part)
            p1 = vg.up(part.p1, 1)
            p2 = vg.up(part.p2, 1)
            p1, p2 = vg.rectangle_inner(p1, p2, 1)
            self.buildings.append(Building(False, Map(p1=p1, p2=p2)))
Esempio n. 18
0
def mutationDynamique(Map,tabBestPath):
    average = 0
    minimum = Map.pathLength(tabBestPath[0])
        
    for i in tabBestPath:
        average += Map.pathLength(i)
        
    average = average/len(tabBestPath)
    
    p = (1 - ((average - minimum)/minimum))**5
    return p
Esempio n. 19
0
def main():
    contam = [[0, 5, 0], [1, 2, 3]]
    map1 = Map(contam)
    r1 = Robot("bob", 3, 300)
    r1.set_base(0, 2)
    map1.add_base(0, 2)
    r1.find_goal(map1)
    print(repr(r1))
    r1.find_goal(map1)
    print(map1)
    print(r1.is_contaminated_spots_left(map1))
class Scene_Level(Scene):
    def __init__(self, game):
        Scene.__init__(self, game)

    def init(self):
        self.scrollablePosition = [0, 0]
        self.scrollableSize = [480, 240]
        self.map = Map(self.game, 'map.tmx')
        self.game.map = self.map
        self.scrollableLayer = ScrollableLayer(self.game,
                                               self.scrollablePosition,
                                               self.scrollableSize, [0, 0],
                                               self.map.size)
        self.game.scrollableLayer = self.scrollableLayer
        self.units = []
        self.units.append(Unit(self.game, [96, 64]))
        self.units.append(Unit(self.game, [96, 96]))
        self.units.append(Unit(self.game, [96, 128]))
        self.units.append(Unit(self.game, [96, 160]))
        self.ui = UI(self.game)

    def endTurn(self):
        for unit in self.units:
            unit.endTurn()

    def update(self, deltaTime, events):
        scrollSpeed = 32 * deltaTime
        keys = pygame.key.get_pressed()
        if keys[pygame.K_UP] or self.game.cursor.bounds['top']:
            self.scrollableLayer.changeOffsetBy([0, 1 * scrollSpeed])
        if keys[pygame.K_DOWN] or self.game.cursor.bounds['bottom']:
            self.scrollableLayer.changeOffsetBy([0, -1 * scrollSpeed])
        if keys[pygame.K_LEFT] or self.game.cursor.bounds['left']:
            self.scrollableLayer.changeOffsetBy([1 * scrollSpeed, 0])
        if keys[pygame.K_RIGHT] or self.game.cursor.bounds['right']:
            self.scrollableLayer.changeOffsetBy([-1 * scrollSpeed, 0])

        for event in events:
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    self.endTurn()

        self.map.update(deltaTime, events)
        for unit in self.units:
            unit.update(deltaTime, events)
        self.scrollableLayer.update(deltaTime, events)
        self.ui.update(deltaTime, events)

    def draw(self, screen):
        self.map.draw(self.scrollableLayer.virtualSurface)
        for unit in self.units:
            unit.draw(self.scrollableLayer.virtualSurface)
        self.scrollableLayer.draw(screen)
        self.ui.draw(screen)
Esempio n. 21
0
def init():
    variables.append(
        Map(var="roof_triangular_sloped",
            choices=[-2, -1, -.5, -.25, 0, 0, 0, .25, .5, 1, 2]))
    variables.append(Map(var="roof_triangular_stairs", choices=[True, False]))
    variables.append(
        Map(var="roof_triangular_end_cap_out", choices=[0, 1, 2, 2, 3]))
    variables.append(
        Map(var="roof_triangular_overhang", choices=[0, 0, 0, 1, 2]))
    variables.append(Map(var="roof_triangular_chop_pct",
                         choices=[0]))  # , 0, 0, 0, 0, .1, .2, .3, .4, .5]))
Esempio n. 22
0
    def test_25_Colours(self):
        inp = Map("images/25colours.ppm")

        # Currently being run with your solution... But this
        #   will be replaced with a call to mine.
        findPath(inp, all_colour_speed)

        # Outputs both the path and gradient along it.
        # Uncomment these out if you want to use them

        inp.outputPath()
Esempio n. 23
0
def map_print(temp_map: Map, id):
    keys = temp_map.getKeys()
    values = temp_map.getValues()
    release_parser.messages.append(("Displaying Map " + str(id)))

    for i in range(0, keys.size()):
        key = keys.get(i)
        value = values.get(i)
        release_parser.messages.append((str(key) + ', ' + str(value)))

    return
Esempio n. 24
0
def main():

    graph = read_stations(FILE_NAME)
    map = Map(graph)

    start = get_user_selection(
        graph, prompt="Please enter the name of your starting station:")
    end = get_user_selection(
        graph, prompt="Please enter the name of your ending station:")

    p = map.get_path(start, end)
    print_itinerary(p)
Esempio n. 25
0
def terminalVersion():
    """
	Game in terminal.
	"""
    # --- New game or load a save
    choice = askQuestion("Menu:", ["New game", "Load game"])

    if choice == 0:
        # New game
        objMap = Map(listMap("%s%smap%s" % (rootDir, os.sep, os.sep)))
        # Select difficulty
        difficulty = askQuestion("Select the difficulty:", [
            "Easy: slow ghost.", "Medium: slow ghost, mode predator ON.",
            "Hard: fast ghost, mode predator ON.",
            "Nightmare: fast ghost, mode boosted predator ON, 1 life, no bonus life.",
            "Doom: run."
        ])
        setDifficulty(difficulty)
    elif choice == 1:
        # Load game
        objMap = Map(listMap("%s%ssave%s" % (rootDir, os.sep, os.sep)))

    # --- Initiate threads and the wx app
    lock = threading.Lock()
    queue = Queue.Queue(5)

    objApp = wx.PySimpleApp()
    objUI = UI(1, "Thread-UI", queue, lock, UAG.PacmanDelay)
    objCatcher = UICatcher(2, "Thread-UICatcher", objApp, objUI)
    objGhostAI = GhostAI(3, "Thread-Ghost", queue, lock, UAG.GhostSpeed,
                         len(objMap.dGhostSpawns))

    lThreads = [objUI, objCatcher, objGhostAI]

    print "[PacmanGame] Initiate threads"
    for t in lThreads:
        print "\t%s" % t.threadName
        t.start()

    # --- Initiate game
    game = PacmanGame(objMap,
                      queue,
                      lock,
                      UAG.PacmanDelay,
                      objUI=objUI,
                      objGhostAI=objGhostAI)
    game.run()

    # --- Wait for all threads to terminate before leaving
    print "[PacmanGame] Wait all threads before leaving"
    for t in lThreads:
        print "\t%s" % t.threadName
        t.join()
    def __init__(self,
                 particles: int,
                 rows: int,
                 columns: int,
                 sick_proportion: float = 0.05,
                 movement_type=MovementType.FREE,
                 cure=True):
        self.map = Map(columns, rows)
        self.map.remove_wall()

        if movement_type != MovementType.HALF:
            self.particles: List[Person] = [
                Person(random.randint(1, rows),
                       random.randint(1, columns),
                       healthy=True,
                       impact_radius=2,
                       disease_impat_probability=0.6,
                       disease_cure_expected_days=20,
                       probability_of_curing=0.8,
                       movement_type=movement_type,
                       cure=cure) for x in range(particles)
            ]
        else:
            print('movement is half')
            self.particles: List[Person] = [
                Person(random.randint(1, rows),
                       random.randint(1, columns),
                       healthy=True,
                       impact_radius=2,
                       disease_impat_probability=0.6,
                       disease_cure_expected_days=20,
                       probability_of_curing=0.8,
                       movement_type=MovementType.FREE,
                       cure=cure) for x in range(particles // 2)
            ] + [
                Person(random.randint(1, rows),
                       random.randint(1, columns),
                       healthy=True,
                       impact_radius=2,
                       disease_impat_probability=0.6,
                       disease_cure_expected_days=20,
                       probability_of_curing=0.8,
                       movement_type=MovementType.STILL,
                       cure=cure) for x in range(particles // 2)
            ]

        sick_count = ceil(len(self.particles) * sick_proportion)

        print('sick count', sick_count)

        for i in range(sick_count):
            particle = random.choice(self.particles)
            particle.set_sick()
Esempio n. 27
0
    def __init__(self):
        self.map = Map()

        # スタート時のprinceの位置座標の取得
        prince_location = [(room.x, room.y) for floor_y in self.map.floor
                           for room in floor_y if room.prince]
        self.prince_location_x = prince_location[0][0]
        self.prince_location_y = prince_location[0][1]

        # スタート時のroomObjの参照
        self.room = self.map.room(self.prince_location_x,
                                  self.prince_location_y)
Esempio n. 28
0
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)

        self.MAP_WIDTH = Map().width
        self.MAP_HEIGHT = Map().height

        self.image = self.__loadImage()
        self.rect = self.image.get_rect()
        self.rect.centerx = random.randrange(self.MAP_WIDTH - self.rect.width)
        self.rect.centery = random.randrange(-100, -40)
        self.speedy = random.randrange(1, 7)
        self.speedx = random.randrange(-3, 3)
Esempio n. 29
0
class Player:
    def __init__(self, connection, mapSize, encode):
        self.connection = connection
        self.map = Map(mapSize)
        self.enemyMap = Map(mapSize)
        self.score = 0
        self.encode = encode

    def __str__(self):
        string = ""
        string += "Seu status:\n"
        string += "Score: %d\n" % (self.score)
        string += "Seu mapa:\t\t\t\t\tMapa adversário:"
        ownMap = str(self.map).split('\n')
        enemyMap = str(self.enemyMap).split('\n')
        for i in range(len(ownMap)):
            string += ownMap[i] + "\t\t\t\t" + enemyMap[i] + "\n"
        return string

    def sendMessage(self, message):
        time.sleep(0.05)
        self.connection.sendall(bytes(message, self.encode))

    def receiveMessage(self):
        return self.connection.recv(64).decode(self.encode)

    def place(self, lin, col):
        return self.map.place(lin, col)

    def fire(self, lin, col):
        return self.map.fire(lin, col)

    def updateEnemyMap(self, lin, col, char):
        self.enemyMap.updateMap(lin, col, char)

    def printMap(self):
        return self.map.__str__()

    def getMap(self):
        return self.map

    def getEnemyMap(self):
        return self.enemyMap

    def updateScore(self):
        self.score += 1

    def getScore(self):
        return self.score

    def closeConnection(self):
        self.connection.close()
Esempio n. 30
0
class Room:
    def __init__(self, window):
        self.window = window
        self.objects = {"M": [], "G": [], "D": [], "I": [], "C": []}
        self.monster_count = random.randint(0, 3)
        self.item_count = random.randint(0, 2)
        self.actual_map = Map()
        self.actual_stage = 0

    def loading_map(self):
        self.objects = {"M": [], "G": [], "D": [], "I": [], "C": []}

        self.actual_map.random_map()

        # Rendering the map
        for key, line in enumerate(self.actual_map.tile):
            for key1, letter in enumerate(line):
                if letter == "G":
                    new_wall = Wall(self.window)
                    new_wall.hit_box[0] = new_wall.hit_box[0] * key1
                    new_wall.hit_box[1] = new_wall.hit_box[1] * key
                    self.objects[letter].append(new_wall)
                elif letter == "M":
                    new_monster = Monster(self.window)
                    if self.actual_stage == 5:
                        new_monster.set_to_boss()
                    new_monster.hit_box[0] = new_monster.hit_box[0] * key1
                    new_monster.hit_box[1] = new_monster.hit_box[1] * key
                    self.objects[letter].append(new_monster)
                elif letter == "I":
                    new_item = random.choice(
                        [HealthPotion(self.window),
                         ManaPotion(self.window)])
                    new_item.hit_box[0] = new_item.hit_box[0] * key1
                    new_item.hit_box[1] = new_item.hit_box[1] * key
                    self.objects[letter].append(new_item)
                elif letter == "D":
                    new_door = Door(self.window)
                    new_door.hit_box[0] = new_door.hit_box[0] * key1
                    new_door.hit_box[1] = new_door.hit_box[1] * key
                    self.objects[letter].append(new_door)
                elif letter == "C":
                    new_button = Button(self.window)
                    new_button.hit_box[0] = new_button.hit_box[0] * key1
                    new_button.hit_box[1] = new_button.hit_box[1] * key
                    self.objects[letter].append(new_button)
        self.render()

    def render(self):
        for obj in self.objects.values():
            for obj1 in obj:
                obj1.render()
Esempio n. 31
0
    def testCategories(self):
        map = Map(MapDirectory(self.testdatadir), maptype=MapTypeImage)
        map.open('a')

        poigroup = map.getPOIGroup()

        poigroup.open('a')

        catman = poigroup.getCategoryManager()

        print catman.getCategories()

        poigroup.close()
Esempio n. 32
0
 def reset(self):
     self.world_ = Map(self.width_, self.length_, self.n_apples_,
                       self.render_)
     self.snake_x0_ = 1 + np.random.randint(self.length_ - 2)
     self.snake_y0_ = 1 + np.random.randint(self.width_ - 2)
     self.direction_ = direction(np.random.randint(4))
     self.snake_ = Snake(self.snake_x0_, self.snake_y0_, self.direction_)
     self.world_.update(self.snake_)
     self.score_ = 0
     s = State(self.snake_, self.world_)
     s_array = np.concatenate((s.to_array(), [self.snake_.length_],
                               directionToArray(self.snake_.direction_)))
     return s_array
Esempio n. 33
0
 def loadData(self):
     if self.isATest:
         self.map = Map(self, "../Maps/testMap.txt")
     else:
         biggerMapPlanList = [
             "../Maps/24x24Maps/map1.txt", "../Maps/24x24Maps/map2.txt"
         ]
         smallerMapPlanList = ["../Maps/16x16Maps/map1.txt"]
         if settings.mapIsBig:
             self.mapPlan = random.choice(biggerMapPlanList)
         else:
             self.mapPlan = random.choice(smallerMapPlanList)
         self.map = Map(self, self.mapPlan)
Esempio n. 34
0
 def __init__(self):
     self.pathCalcComplete = 0
     self.isMowerPlaced = 0
     self.isStationPlaced = 0
     self.state = 0
     self.bladesOn = 0
     self.mowOffset = 30
     self.posX = 0
     self.posY = 0
     self.stationPosX = 0
     self.stationPosY = 0
     self.lawn = Map(self.mowOffset)
     self.path = Pathfinder()
Esempio n. 35
0
    def testCategories(self):
        map = Map(MapDirectory(self.testdatadir), maptype=MapTypeImage)
        map.open("a")

        poigroup = map.getPOIGroup()

        poigroup.open("a")

        catman = poigroup.getCategoryManager()

        print catman.getCategories()

        poigroup.close()
Esempio n. 36
0
def api_taks(id=-1):
	if request.method == 'GET':
		map = Map.get_by_id(id)
		if map is None:
			return json_success({})
		else:
			return json_success(map.Get())
	if request.method == 'DELETE':
		map = Map.get_by_id(id)
		if map is None:
			return json_response(code=400, message="Map does not exist")
		map.Delete()
		return json_response(code=200,message="Success")
Esempio n. 37
0
def api_taks(id=-1):
    if request.method == 'GET':
        map = Map.get_by_id(id)
        if map is None:
            return json_success({})
        else:
            return json_success(map.Get())
    if request.method == 'DELETE':
        map = Map.get_by_id(id)
        if map is None:
            return json_response(code=400, message="Map does not exist")
        map.Delete()
        return json_response(code=200, message="Success")
def decorate_roof(obj, options=Map()):
    settings = options.options
    if not settings.roof:
        return obj

    material = Blocks.match(settings.roof_material)
    if material:
        obj.material = material

    if str.startswith(settings.roof, "pointy"):
        height = settings.roof_pointy_multiplier * options.radius
        pointy = V3(options.center.x,
                    options.center.y + options.height + height,
                    options.center.z)

        for i, vec in enumerate(options.corner_vectors):
            roof_line = vg.getLine(vec.x, vec.y + 1, vec.z, pointy.x,
                                   pointy.y + 1, pointy.z)
            obj.points_edges += roof_line

            if not settings.roof == "pointy_lines":
                next_roof_point = options.corner_vectors[(i + 1) % len(
                    options.corner_vectors)]

                # Triangle to pointy face
                triangle_face = [vec, pointy, next_roof_point]
                roof_face = vg.unique_points(
                    vg.getFace([V3(v.x, v.y + 1, v.z) for v in triangle_face]))
                obj.points = obj.points.union(roof_face)

    elif str.startswith(settings.roof, "triangular"):
        obj.decorations.append("roof_triangular")
    elif str.startswith(settings.roof, "battlement"):
        height = settings.roof_battlement_height or 1
        spacing = settings.roof_battlement_space or 2

        for i, vec in enumerate(options.corner_vectors):
            next_roof_point = options.corner_vectors[(i + 1) % len(
                options.corner_vectors)]
            # TODO: Add X,Z outward from center as option
            roof_line = vg.getLine(vec.x, vec.y + height, vec.z,
                                   next_roof_point.x,
                                   next_roof_point.y + height,
                                   next_roof_point.z)

            obj.points = obj.points.union(
                vg.points_spaced(roof_line, Map(every=spacing)))

    elif str.startswith(settings.roof, "shape"):
        obj.decorations.append("roof_floating_shape")
    return obj
Esempio n. 39
0
class Game(object):
    def __init__(self):
        pygame.init()
        self.screen = pygame.display.set_mode((800, 608))
        self.StartGame()

    def StartGame(self):
        self.done = False
        self.map = Map("Map.txt")
        self.map.Load()
        self.player = Player(4 * 32, 3 * 32, (400, 304))
        self.starttime = time.time()
        self.lasttime = time.time()

    def GameLoop(self):
        while not self.done:
            self.starttime = time.time()
            self.screen.fill((0, 0, 0))

            events = pygame.event.get()
            ## setup something to do when quests are done
            self.done = self.player.done
            # events list
            for e in events:
                if e.type == pygame.QUIT:
                    self.done = True
                if e.type == pygame.KEYDOWN:
                    if (e.key == pygame.K_RIGHT):
                        self.player.Movex(32)
                    if (e.key == pygame.K_LEFT):
                        self.player.Movex(-32)
                    if (e.key == pygame.K_DOWN):
                        self.player.Movey(32)
                    if (e.key == pygame.K_UP):
                        self.player.Movey(-32)

            self.map.CheckHit(self.player)

            self.map.Update(self.starttime - self.lasttime)
            self.player.Update(self.starttime - self.lasttime)
            ## not done
            self.map.Render(self.screen,
                            (400 - self.player.x, 304 - self.player.y))
            self.player.Render(self.screen)

            # Update Screen
            pygame.display.flip()
            self.lasttime = self.starttime

    def EndGame(self):
        pygame.display.quit()
Esempio n. 40
0
    def loadMap(self, filename):        
        with open(filename, "r") as map_file:
            parts = map_file.readline().split(",")
            width = int(parts[0])
            height = int(parts[1])
            
            m = Map(width, height)
            r = 0
            for line in map_file:
                row = [TileTypes()[t] for t in line.strip('\n').split(",")]
                m.set_row(r, row)
                r = r + 1

        return m
Esempio n. 41
0
def api_map():
	if request.method == 'POST':
		userName = request.args.get("username","")
		mapName = request.args.get("mapname","")
		userId = request.args.get("userId","")
		userId = str(userId.encode('utf-8').decode('ascii', 'ignore'))
		uid = int(userId)
		ownMap =Map(creator=userName,creatorId=uid,name=mapName)
		key = ownMap.put()
		return json_success({"mapId":key.integer_id()}) 

	if request.method == 'GET':
		id = request.args.get("id","")
		ownMap = Map.get_by_id(int(id))
		return json_success({"creator":ownMap.creator,"name":ownMap.name,"creatorId":ownMap.creatorId,"id":int(id)})
Esempio n. 42
0
	def __init__(self):
		pygame.init()

		#self.screen = pygame.display.set_mode((1024, 768), pygame.FULLSCREEN)
		self.screen = pygame.display.set_mode(bounds)
		self.clock = pygame.time.Clock()
		self.state = JOIN

		mapRect = pygame.Rect(0, 0, bounds[0], bounds[1])
		self.map = Map(mapRect)
		self.quit = False

		UDP_IP = "0.0.0.0"
		UDP_PORT = 5005

		self.sock = socket.socket(socket.AF_INET, # Internet
			socket.SOCK_DGRAM) # UDP
		self.sock.settimeout(.1)
		self.sock.bind((UDP_IP, UDP_PORT))

		pygame.mouse.set_visible(False)

		self.joinPage = JoinPage(bounds)

		self.mutex = Lock()
		t = Thread(target = Game.netThread, args = (self,))
		t.start()

		self.countDown()
Esempio n. 43
0
def favorite_mapsForUser(userid = -1):
	if userid <= 0:
		return json_response(code=400)
	user = Account.get_by_id(userid)
	if user is None:
		return json_response(code=400)

	if request.method == 'GET': # done
		#	GET: returns json array of information about user's map objects
		return json_success(user.getFavorites())

	mapid = getValue(request, "mapid", "")
	if not mapid:
		return json_response(code=400)
	map = Map.get_by_id(int(mapid))
	if map is None:
		return json_response(code=400)
	if request.method == 'POST':
		if not map.key.integer_id() in user.favoriteMaps:
			user.favoriteMaps.append(map.key.integer_id())
			user.put()
		return json_response(code=200)
	
	if request.method == 'DELETE':
		if map.key.integer_id() in user.favoriteMaps:
			user.favoriteMaps.remove(map.key.integer_id())
			user.put()
		return json_response(code=200)
Esempio n. 44
0
    def __init__(self, mapdict):
        self.mapdef = mapdict
        self.cellmap = Map(mapdict)

        self.gemgos = []
        for gemgo in MGO.GEMGOTYPES:
            self.gemgos += gemgo.place(self.cellmap)
Esempio n. 45
0
def mapData(mapid = -1):
	if mapid <= 0:
		return json_response(code=400)
	map = Map.get_by_id(mapid)
	if map is None:
		return json_response(code=400)

	if request.method == 'GET': # done
		# returns json map info
		return json_success(map.Get())

	if request.method == 'DELETE': #todo
		# DELETE: used to delete a map object and all associated tak objects, parameters: none
		map.Delete()
		return json_response(code=200,message="Success")
		

	if request.method == 'PUT': #todo
		#PUT: 	used to update map in database, parameters: (any map parameter)
		# return json map object
		newName = request.args.get("name","")
		newIsPublic = request.args.get("isPublic","")
		newOwner = request.args.get("owner","")
		map.Put(newName=newName,newIsPublic=newIsPublic,newOwner=newOwner)
		return json_response(code=200,message="Success")
Esempio n. 46
0
 def __init__(self):
     self.map = Map()
     self.numUnits = 1
     self.numPlayers = 1
     self.playerIndex = -1 
     self.turn = 1
     self.players = []
Esempio n. 47
0
    def __init__(self, host, port, name):
        """
        Initialize a client for interacting with the game.

        host -- The hostname of the server to connect
                (e.g.  "example.com")
        port -- The port to connect on (e.g. 6969)
        name -- Unique name of the client connecting
        """
        self.host = host
        self.port = port
        self.name = name
        self.sock = None
        self.token = ""
        self.resources = 0
        self.ships = []

        self.my_map = Map(100, 100)
        self.attack_report = []

        self.strat = BomberStrategy(0,0,100,100)
        self.defense = RunOnDetection(self.ships)

        self.enemypdf = EnemyPDF()
        self.danger_grid = DangerGrid()
        self.last_scan = (0,0)
        self.last_special = None
        self.attack_queue = []
        self.burst_queue = []

        # data for replay attacks
        self.replay_rate = 0.03
        self.replay_stack = ReplayStack(10)
        self.replay_check_list = []
Esempio n. 48
0
    def run(self):
        newMap = None
        if self.fileName:
            try:
                newMap = Map.readFromFile(self.fileName)
            except Exception as e:
                self.mapGenerationFailed.emit(e)
                return
        else:
            try:
                newMap = Map.generateCNN(self.citiesCount, self.connectionsCount)
            except Exception as e:
                self.mapGenerationFailed.emit(e)
                return

        self.mapGenerated.emit(newMap)
Esempio n. 49
0
 def download_map(self, filename):
     """
     Download a map.
     @param filename Name of the map.
     @return Map object on success, None on error.
     """
     # [0]filename, [1]title, [2]filesize, [3]map_data
     map_data = self.database.do_query(Procedures.get_map(), filename);
     map = Map(self.reporter);
     try:
         if not map.read_map(map_data[0][3]):
             raise Exception, "Unknown corruption error." % filename;
     except Exception, e:
         self.report("Map file %s is corrupted (%s). Discarding." % (filename, str(e)));
         Log.quick_log("The map %s is corrupted: %s." % (filename, str(e)));
         return None;
Esempio n. 50
0
	def __init__(self):
		QtGui.QMainWindow.__init__(self)

		self.trans = None # Per mantenir l'estructura del fitxer de transport en memoria

		self.stOrigen = None
		self.stDesti = None

		self.a = None
		self.cami = None

		self.ui = uic.loadUi('transPublic.ui')

		#Preparem el Frame del mapa i el posem al form
		self.mF = Map(self,None)
		lay = QtGui.QGridLayout()
		lay.addWidget(self.mF)
		self.ui.mapGruopBox.setLayout(lay)

		self.connect(self.ui.menuOpen, QtCore.SIGNAL("activated()"), self.openFile)
		self.connect(self.ui.cbOrigen, QtCore.SIGNAL("activated(QString)"), self.cbOrigen_changed)
		self.connect(self.ui.cbDesti, QtCore.SIGNAL("activated(QString)"), self.cbDesti_changed)
		self.connect(self.ui.pbCalcula, QtCore.SIGNAL("clicked()"), self.calcula)

		self.ui.show()
Esempio n. 51
0
    def __init__(self):
        #GLOBAL CONSTS
        self.GAME_WIDTH = 600
        self.GAME_HEIGHT = 500

        self.clock = pygame.time.Clock()
        self.frame = 0
        self.logicFrame = 0
        self.mouseX = 0
        self.mouseY = 0
        self.cameraX = int(self.GAME_WIDTH / 2)
        self.cameraY = int(self.GAME_HEIGHT / 2)
        self.running = True
        self.debug = True
        self.map = Map(self)
        self.heldKeys = dict()
        self.checkedKeys = dict()

        self.root = pygame.display.set_mode((self.GAME_WIDTH, self.GAME_HEIGHT), pygame.DOUBLEBUF)
        self.player = Player(self)
        self._keySetup()
        #temp
        self.map.mapArray[0][0].addEntity(self.player)
        self.player.x = 100
        self.player.y = 100
        while self.running:
            self.displayLoop()
        self.quit()
Esempio n. 52
0
def maps():
	userMaps = getMaps(session['userId'])
	listOfMaps = []
	for mapId in userMaps:
		logging.info(mapId)
		aMap = Map.get_by_id(mapId)
		listOfMaps.append(aMap.to_dict())
	return json_success(listOfMaps)
Esempio n. 53
0
def taks(mapId=-1, str=''):
	if mapId == -1:
		return redirect('/app')
	map = Map.get_by_id(mapId)
	if map is None:
		return redirect('/app')
	taks = map.to_dict()['taks']
	return render_template('view_taks.html',taks = taks, mapName=map.name, mapid=map.key.integer_id(), id=int(session['userId']))
Esempio n. 54
0
 def load_map(self, map_url):
     real_url = os.path.join("..", "assets", "world", map_url)
     self.map = Map(real_url, self.text_box)
     if self.map.starting_location:
         self.player.teleport(self.map.starting_location)
     self.view = pygame.Surface(self.map.map_size)
     self.cam_offset_x = self.player.sprite_rect.left
     self.cam_offset_y = self.player.sprite_rect.top
Esempio n. 55
0
def generate_map(size, obstacle_rate = 0.4):
	map_matrix = Map()
	map_matrix.set_size(size)
	map_matrix.set_obstacle_rate(obstacle_rate)
	map_matrix.generate_map()

	return map_matrix
Esempio n. 56
0
    def _update_map(self, m):
        if m.name is None:
            # Data is not yet loaded
            return

        m.layers.get()

        sp = HorizontalPanel(Size=('100%', '100%'))

        sidebar = Sidebar()
        sidebar.setLayersCollection(m.layers)
        sp.add(sidebar)
        sp.setCellWidth(sidebar, '25%')

        map_ = Map(Size=('100%', '100%'))
        map_.set_map(m)
        sp.add(map_)

        self.setWidget(sp)
Esempio n. 57
0
	def init(self):
		"""Método para iniciar o jogo completo"""
		#inicia a janela 'invisível'
		self.screen = pygame.display.set_mode((1,1),NOFRAME,32)
		
		
		#cria uma instancia para o mapa
		self.map = Map(self.screen)
		pygame.display.set_icon(self.map._getGraf('!'))
		#cria personagem 
		self.person = Character(self.map,self.screen)

		#incia mapa self.fase
		self.mapInit()
		
		#Comeca o jogo
		self.screen = self.update()
		
		
		#laço principal do jogo
		while True:		
			for event in pygame.event.get():
				if event.type == QUIT:
					self.exit()
				if event.type == KEYDOWN:
					
					#movimentos do personagem
					if event.key == K_UP: #cima
						self.win,s = self.person.up()
						self.pushPilha(s)
					elif event.key == K_DOWN: #baixo
						self.win,s = self.person.down()
						self.pushPilha(s)
					elif event.key == K_LEFT: #esquerda
						self.win,s = self.person.left()
						self.pushPilha(s)
					elif event.key == K_RIGHT: #direita
						self.win,s = self.person.right()
						self.pushPilha(s)
						
					elif event.key == K_w: #ganha
						self.win = True
					elif event.key == K_r: #reincia o mapa
						self.mapInit()
						self.screen = self.update()
						
					elif event.key == K_z and pygame.key.get_mods() & KMOD_CTRL: #ctrl + z
						self.desfazer()
						self.screen = self.update()
				
			pygame.display.flip()
			if self.win:
				self.fase = (self.fase+1) % 16
				self.mapInit()
				self.screen = self.update()
 def create_score_array(self, terrain_map, height, width):
     score_array = [None] * (height * width)
     # Set scores of non traversable tiles to NON_TRAVERSABLE_SCORE
     for x in range(width):
         for y in range(height):
             p = Point(x, y)
             ndx = Map.point_to_index(p, width, height)
             t_tile = terrain_map.map[ndx]
             if not t_tile.is_traversable():
                 score_array[ndx] = ScoreTile(NON_TRAVERSABLE_SCORE, [])
     return score_array
Esempio n. 59
0
class GameScene(Scene):
    def _start(self):
        self.map = Map("firstMap.map")
        self.map.start(self.display)
    def _draw(self, dt):
        self.display.fill((255,255,255))
        self.map.draw()
    def _event(self, event):
        self.map.event(event)
    def _update(self, dt):
        self.map.update(dt)

#Класс редактора карт
Esempio n. 60
0
 def get_all_traversable_states(self):
     states = []
     for x in range(self.width):
         for y in range(self.height):
             pnt = Point(x, y)
             ndx = Map.point_to_index(pnt, self.width, self.height)
             terrain = self.map[ndx]
             if terrain.is_traversable():
                 for dir in Directions:
                     state = State(pnt, dir)
                     states.append(state)
     return states