Exemplo n.º 1
0
 def __init__(self, dir, game, max=max):
     super().__init__(dir, game, max=max)
     size = game_sizes[game]
     self.generator = ParamGenerator(self.dir,
                                     self.game,
                                     width=size[0],
                                     height=size[1])
Exemplo n.º 2
0
class ProgressivePCGSelector(LevelSelector):
    '''
    TODO: Shared object across workers.
    '''
    def __init__(self, dir, game, alpha=0.01, upper_limit=True, max=max):
        super().__init__(dir, game, max=max)
        size = game_sizes[game]
        self.generator = ParamGenerator(self.dir,
                                        self.game,
                                        width=size[0],
                                        height=size[1])
        self.difficulty = 0
        self.alpha = alpha
        self.upper_limit = upper_limit

    def get_level(self):
        if not self.upper_limit:
            return self.generator.generate([self.difficulty], difficulty=True)

        dif = random.uniform(0.0, self.difficulty)
        return self.generator.generate([dif], difficulty=True)

    def report(self, level_id, win):
        if win:
            self.difficulty = min(1.0, self.difficulty + self.alpha)
        else:
            self.difficulty = max(0.0, self.difficulty - self.alpha)

    def get_info(self):
        return str(self.difficulty)
Exemplo n.º 3
0
 def __init__(self, dir, game, alpha=0.01, upper_limit=True, max=max):
     super().__init__(dir, game, max=max)
     size = game_sizes[game]
     self.generator = ParamGenerator(self.dir, self.game, width=size[0], height=size[1])
     self.difficulty = 0
     self.alpha = alpha
     self.upper_limit = upper_limit
Exemplo n.º 4
0
 def __init__(self, dir, game, difficulty, fixed=False, max=max):
     super().__init__(dir, game, max=max)
     self.difficulty = difficulty
     self.fixed = fixed
     size = game_sizes[game]
     self.generator = ParamGenerator(self.dir, self.game, width=size[0], height=size[1])
     self.last_level = None
Exemplo n.º 5
0
class RandomPCGSelector(LevelSelector):

    def __init__(self, dir, game, max=max):
        super().__init__(dir, game, max=max)
        size = game_sizes[game]
        self.generator = ParamGenerator(self.dir, self.game, width=size[0], height=size[1])

    def get_level(self):
        return self.generator.generate()

    def report(self, level_id, win):
        pass

    def get_info(self):
        return ""
Exemplo n.º 6
0
class RandomWithDifPCGSelector(LevelSelector):

    def __init__(self, dir, game, difficulty, fixed=False, max=max):
        super().__init__(dir, game, max=max)
        self.difficulty = difficulty
        self.fixed = fixed
        size = game_sizes[game]
        self.generator = ParamGenerator(self.dir, self.game, width=size[0], height=size[1])
        self.last_level = None

    def get_level(self):
        if self.fixed and self.last_level is not None:
            return self.last_level
        self.last_level = self.generator.generate([self.difficulty], difficulty=True)
        return self.last_level

    def report(self, level_id, win):
        pass

    def get_info(self):
        return ""
Exemplo n.º 7
0
from level_generator import ParamGenerator

game_sizes = {
    "zelda": [13, 9],
    "boulderdash": [26, 13],
    "frogs": [28, 11],
    "solarfox": [10, 11]
}
game = "boulderdash"
for game in game_sizes:
    for d in [0, 2.5, 7.5]:
        gen = ParamGenerator("./data/test-levels/{}/{}/".format(game, d), game,
                             game_sizes[game][0], game_sizes[game][1])
        for i in range(1):
            level = gen.generate([(d / 10.0)], difficulty=True)
            #print(level)
print("Done")