Esempio n. 1
0
def StartSimulation():
    testMap = Map(
        100, 100, 1, 1, 50,
        np.loadtxt("saved data maps/notrand" + str(5) + ".txt")[:100])
    generator = PathGeneratorSmooth(0.2, (2, 5), (8, 12), 50)
    generator2 = PathGeneratorStraight(50)
    testPlanner = PrimitivePathPlanner(10, 1, [generator, generator2], testMap)
    testEntityManager = EntityManager()
    #    clock = pygame.time.Clock()
    testSimulation = SimulationData(testMap, testPlanner, testEntityManager)
    dk = []
    for ll in range(10):
        dk.append(testMap.getRandomPoint())
    for jj in range(10):  # putting targets into entitymanager
        e = testEntityManager.spawnEntity(EntityTarget, dk[jj], 0)
        e.moveSpeed = 0

    for i in range(4):
        agent = testEntityManager.spawnEntity(Agent, (10, 10), 0)
        agent.splitMapIndex = 1
        testPlanner.registerNewAgent(agent)
    for i in range(4):
        agent = testEntityManager.spawnEntity(Agent, (10, 10), 0)
        agent.generatorIndex = 1
        agent.splitMapIndex = 2
        testPlanner.registerNewAgent(agent)

    print(RunSimulation(testSimulation))
def run_threads(start_map, stop_map, num_threads):
    for i in range(start_map, stop_map): #33 maps
        taskList = []
        print('Adding map {} to the queue...'.format(i), end='')
        t = np.loadtxt("terrainmaps/0.txt")[:100]
        if i < 13:
            m = Map(100, 100, 1, 1, 50, np.loadtxt("saved data maps/notrand" + str(i + 1)+".txt")[:100], True, t)
        else:
            m = Map(100, 100, 1, 1, 50, np.loadtxt("saved data maps/rand" + str(i - 12)+".txt")[:100], True, t)
        for j in range(1): #10 sets of targets
            dk = []
            for ll in range(10): #10 agents
                dk.append(m.getRandomPoint())
            for k in range(1): # 3 sets of agent setup
                for l in range(1): # 20 trials per setup
                    for o in range(2): # split map or not
                        path_time, no_samples, replan_ratio = 50, 15, 0.5
                        generator = PathGeneratorSmooth(0.2, (1, 5), (8, 12), path_time) # straightChance, pathLengthRange, radiusRange, pathTime
                        #generator = PathGeneratorSmooth(0.2, (1, 10), (15, 25), path_time) # WIDE # straightChance, pathLengthRange, radiusRange, pathTime
                        #generator = PathGeneratorTerrainSmooth(0.0, (1,5), (8,12), path_time)
                        #generator = PathGeneratorTerrain(path_time)
                        generator2 = PathGeneratorStraight(path_time)
                        testPlanner = PrimitivePathPlanner(replan_ratio * path_time, no_samples, [generator, generator2], m) # replanTime, tries, generators, initialMap
                        testEntityManager = EntityManager()

                        for ii in range(10):  # setting each agent (10 of them)
                            agent = testEntityManager.spawnEntity(Agent, (50, 50), 0) #setting terrain code in Agent __init__
                            testPlanner.registerNewAgent(agent)
                            if ii < 5 : # <7 for primitive-spot_omni-details, <3
                                agent.mapSplitIndex = 2 #1, 2
                            else :
                                agent.mapSplitIndex = 1 #2, 1
                            if k == 0 :
                                if ii < 2 :
                                    agent.generatorIndex = 0
                                else :
                                    agent.generatorIndex = 1
                            elif k == 1 :
                                if ii < 5 :
                                    agent.generatorIndex = 0
                                else :
                                    agent.generatorIndex = 1
                            elif k == 2 :
                                if ii < 8 :
                                    agent.generatorIndex = 0
                                else :
                                    agent.generatorIndex = 1
                            if o == 0 :
                                agent.mapSplitIndex = 0

                        for jj in range(10): # putting targets into entitymanager (10 of them)
                            e = testEntityManager.spawnEntity(EntityTarget, dk[jj], 0)

                        taskList.append((SimulationData(m, testPlanner, testEntityManager),i,j,k,l,o))
        random.shuffle(taskList)
        print('OK')

        p = Pool(num_threads)
        p.map(run_simulations, taskList)
Esempio n. 3
0
    def __init__(self, screen_size, resource_path):
        global _game
        _game = self

        self.mode = None
        self.running = False
        self.screen_size = screen_size

        pygame.mixer.pre_init(frequency=44100)
        pygame.init()
        pygame.display.set_caption('After You!')

        self.clock = pygame.time.Clock()
        self.screen = pygame.display.set_mode(
            self.screen_size,
            pygame.OPENGL | pygame.DOUBLEBUF | pygame.HWSURFACE)

        self.component_manager = componentmanager.ComponentManager()
        self.component_manager.register_component(MovementComponent())
        self.component_manager.register_component(ExampleComponent())
        self.component_manager.register_component(AnimationComponent())
        self.component_manager.register_component(DrawComponent())
        self.component_manager.register_component(InputMovementComponent())
        self.component_manager.register_component(DrawHitBoxComponent())
        self.component_manager.register_component(DrawCircleComponent())
        self.component_manager.register_component(SmokeScreenComponent())
        self.component_manager.register_component(PlayerCollisionComponent())
        self.component_manager.register_component(DecoyMovementComponent())
        self.component_manager.register_component(SelfDestructComponent())
        self.component_manager.register_component(SpawnDecoyComponent())
        self.component_manager.register_component(DrawScoreComponent())
        self.component_manager.register_component(MinefieldComponent())
        self.component_manager.register_component(DrawTimerComponent())
        self.component_manager.register_component(UpdateTimerComponent())
        self.component_manager.register_component(SpeedBoostComponent())
        self.component_manager.register_component(ButtonInterpreterComponent())
        self.component_manager.register_component(DrawActionsComponent())
        self.component_manager.register_component(SpawnVortexComponent())
        self.component_manager.register_component(DrawVortextComponent())
        self.component_manager.register_component(GrowVortextComponent())
        self.component_manager.register_component(TrapComponent())
        self.component_manager.register_component(HideComponent())
        self.component_manager.register_component(AIActionComponent())
        self.component_manager.register_component(AIMovementComponent())

        self.entity_manager = EntityManager()

        self.resource_manager = ResourceManager(resource_path)
        self.resource_manager.register_loader('data', LoadEntityData)
        self.resource_manager.register_loader('image', LoadImage)
        self.resource_manager.register_loader('inputmap', LoadInputMapping)
        self.resource_manager.register_loader('sound', LoadSound)

        self.input_manager = InputManager()

        self.renderer = GLRenderer()
        self.renderer.resize(self.screen_size)

        self.view = View([SimpleLayer('draw'), SimpleLayer('ui')])
Esempio n. 4
0
class Entity(object):
    objects = EntityManager()
    __metaclass__ = MetaEntity

    def __init__(self):
        # Useless. Here just for Pydev
        self.objects = None
        self._loaded = False

    def __getattribute__(self, name):
        if name is 'id' or name.startswith('_'):
            return object.__getattribute__(self, name)

        if not self._loaded:
            self._load()
            self._loaded = True

        return object.__getattribute__(self, name)

    def _load(self):
        server.server.load_entity(self)
Esempio n. 5
0
import asyncio
import binascii
import struct
import time
import zlib

from constants import *
from charactermanager import CharacterManager
from entitymanager import EntityManager
from groupserver import GroupServer
from usermanager import UserManager
from zoneserver import ZoneServer

characterManager = CharacterManager()
entityManager = EntityManager()
groupServer = GroupServer()
userManager = UserManager()
zoneServer = ZoneServer()


class GatewayServer(asyncio.Protocol):
    def connection_made(self, transport):
        self.transport = transport
        self.client = (
            transport.get_extra_info('peername')[0] + ":"  # IP
            + str(transport.get_extra_info('peername')[1]))  # port
        print("Connection from: " + self.client)

        self.msgSource = b'\xdd' + b'\x00\x7b'[::-1]
        self.msgDest = b'\x01' + b'\x00\x32'[::-1]
Esempio n. 6
0
    def __new__(cls, name, bases, dct):

        dct['objects'] = EntityManager(name, dct['__module__'])

        return type.__new__(cls, name, bases, dct)