Ejemplo n.º 1
0
def game_gen_worker(*args):
    global WORKER_NN
    if not WORKER_NN:
        if WORKER_MODEL_ID > 0:
            WORKER_NN = load_net(WORKER_DNAME + fname_from_id(WORKER_MODEL_ID))
        else:
            WORKER_NN = Net()
        WORKER_NN.eval()
    nn = WORKER_NN

    p1 = NNSimplePlayer('p1', nn=nn, train=True)
    p2 = NNSimplePlayer('p2', nn=nn, train=True)
    g = Game(players=[p1, p2], verbose=False)
    winner = g.run()
    extra = ''
    for _ in range(5):
        try:
            fname = '{:05}_{}_{}__{}.json'.format(WORKER_MODEL_ID, int(time.time()), extra, len(p1._states) + len(p2._states))
            with open(f'{WORKER_DNAME}{fname}', 'x') as f:
                json.dump({'p1_s': p1._states, 'p2_s': p2._states, 'w': 0 if p1 == winner else 1}, f)
                log.info('wrote %s', fname)
            break
        except FileExistsError:
            log.info('file exists')
            extra = str(random.randint(1,1000))
Ejemplo n.º 2
0
def worker(p1_p2):
    p1, p2 = p1_p2
    p1 = PLAYERS_MAP[p1]
    p2 = PLAYERS_MAP[p2]

    players = [p1(), p2()]
    game = Game(players, verbose=False)
    winner = game.run()
    loser = players[0] if winner == players[1] else players[1]
    return winner.name, loser.name
Ejemplo n.º 3
0
def simple_match():

    win = {'p1': 0, 'p2': 0}
    for i in range(500):
        p1 = RandomPlayer('p1')
        p2 = RandomPlayer('p2', w=WEIGHT_MAP29)
        players = [p1, p2]
        if i % 2:
            players = players[::-1]
        g = Game(players, seed=None)
        winner = g.run()
        win[winner.name] += 1
        print(win)
    print(win)
Ejemplo n.º 4
0
def run_match(x: np.ndarray):
    w = {k: v for k, v in zip(ACTIONS, x)}
    win = {'p1': 0, 'p2': 0}
    for i in range(100):
        p1 = RandomPlayer('p1', w=WEIGHT_MAP)
        p2 = RandomPlayer('p2', w=w)
        players = [p1, p2]
        if i % 2:
            players = players[::-1]
        g = Game(players, seed=None, verbose=False)
        try:
            winner = g.run()
            win[winner.name] += 1
        except:
            log.exception('error running game')
    pct = win['p1'] / (win['p1'] + win['p2'])
    #log.info('match win ratio: %s', pct)
    return pct
Ejemplo n.º 5
0
from engine import Game

if __name__ == "__main__":

    game = Game()
    game.run()

    
Ejemplo n.º 6
0
    font = Font('media/fonts/open-24-display-st.ttf', 64)

    game_config = {
        "canvas_size": game.window.size,
        "mixer_config": {
            "mute": options.mute
        },
        "score": Score(font, (20, 5)),
        "text_font": font,
        'lives_left': config.number_of_lives
    }

    game.add_scene(stages.intro.create_scene(game_config))
    game.add_scene(stages.gameover.create_scene(game_config))
    game.add_scene(stages.stage1.create_scene(game_config))
    game.run("intro")


def update_score_enemy(sender, scene):
    """Update player score."""
    scene.get_object('score').add(50)
    scene.event("play", "enemy_kill")


def player_shoot(event, scene):
    """Create a projectile, where the player object is."""
    if event.key == pygame.K_SPACE and event.type == pygame.KEYDOWN:
        player = scene.get_object("player")
        if player.should_update:
            x, y, w, _ = player.bounds
            origin = (x + w - 15, y + 10)
Ejemplo n.º 7
0
def main():
    game = Game()
    game.run()
Ejemplo n.º 8
0
def main(): 
    game = Game(_details)
    game.run()
Ejemplo n.º 9
0
                    pass
                else: pass
            elif status==listo:
                break
        f.close()
    
def getAllWardrobes():
    return [
        Wardrobe('audiencia/boy/'),
        Wardrobe('audiencia/girl/'),
        Wardrobe('audiencia/fashion_boy/'),
        Wardrobe('audiencia/fashion_girl/'),
        Wardrobe('audiencia/goth/'),
    ]

all_wardrobes = getAllWardrobes()
def buildIndividual(level, wardrobes):
    if wardrobes is None:
        wardrobes = all_wardrobes
    wd=random.choice(wardrobes)
    i= Individual(wd)
    i.random(level=level+1, clothinBehavior=wd.behaviour)
    return i
    
if __name__ == "__main__":
    wardrobes = getAllWardrobes() # x,y
    g = Game(*SCREEN_SIZE, **{'framerate': 200})
    g.run( SampleScene(g, "Scene1", wardrobes, level=6) )
    
    
Ejemplo n.º 10
0
        return random.choice(actions)

    def choose_buy_actions(self, game, p1, p2, buys):
        card_to_action = {a.card: a for a in buys}
        c = self.choose_buy_card(game, p1, p2, card_to_action.keys())
        if c:
            return card_to_action[c]

    def choose_buy_card(self, game, p1, p2, cards):
        # buy most expensive
        b = max(cards, key=attrgetter('cost'))
        return b


class SimplePlayer(Player, SimplePolicy):
    def choose_action(self, b, p_other, actions):
        return self.simple_action_policy(self, b, p_other, actions)

    choose_card_action = choose_action

    def do_choose_from_piles(self, action, piles, min_n, max_n):
        return self.simple_pile_policy(self, action, piles, min_n, max_n)


if __name__ == '__main__':
    p1 = InteractivePlayer('p1')
    p2 = SimplePlayer('p2')
    g = Game(players=[p1, p2])
    winner = g.run()
Ejemplo n.º 11
0
                break
        f.close()


def getAllWardrobes():
    return [
        Wardrobe('audiencia/boy/'),
        Wardrobe('audiencia/girl/'),
        Wardrobe('audiencia/fashion_boy/'),
        Wardrobe('audiencia/fashion_girl/'),
        Wardrobe('audiencia/goth/'),
    ]


all_wardrobes = getAllWardrobes()


def buildIndividual(level, wardrobes):
    if wardrobes is None:
        wardrobes = all_wardrobes
    wd = random.choice(wardrobes)
    i = Individual(wd)
    i.random(level=level + 1, clothinBehavior=wd.behaviour)
    return i


if __name__ == "__main__":
    wardrobes = getAllWardrobes()  # x,y
    g = Game(*SCREEN_SIZE, **{'framerate': 200})
    g.run(SampleScene(g, "Scene1", wardrobes, level=6))
Ejemplo n.º 12
0
def main():
    g = Game(800, 525, framerate = 20, title = "Typus Pocus", icon="escenario/icono.png")
    g.run( GameIntro(g, pygame.font.Font("escenario/MagicSchoolOne.ttf",50)) )
    g.run( MainMenu(g) )
Ejemplo n.º 13
0
    def event(self, evt):
        if evt.type == KEYDOWN:
            if evt.key == K_ESCAPE:
                self.end()
            elif evt.key == K_SPACE:
                self.goscene = True
            elif evt.key == K_RETURN:
                self.finalizar = True

    def loop(self):
        # aca updateamos el mundo cada paso
        if self.goscene:
            retorno = self.runScene(
                SampleScene(self.game, self.nombre + " hijo "))
            self.goscene = False
            print "devolvio", retorno
        if self.finalizar:
            self.end(self.nombre)

    def update(self):
        self.game.screen.blit(self.background, (0, 0))
        font = pygame.font.SysFont("Times New Roman", 30)
        s = font.render(self.nombre, True, (0, 255, 255))
        self.game.screen.blit(s, (0, 0))


if __name__ == "__main__":
    g = Game(800, 600, framerate=200)
    g.run(SampleScene(g, "Scene1"))
Ejemplo n.º 14
0
def play():
    p1 = NNUCTPlayer('p1', nn=Net())
    p2 = NNUCTPlayer('p2', nn=Net())
    g = Game(players=[p1, p2])
    winner = g.run()
Ejemplo n.º 15
0
                        break
                    if cur == Position(ship.x, ship.y):
                        done = True
                        continue
                    elif game.cells[cur.y][cur.x][2] in visited:
                        break
                    visited.add(game.cells[cur.y][cur.x][2])
                else:
                    continue
                next_ships[next_pos[ship.id].y][next_pos[ship.id].x].remove(ship)
                next_pos[ship.id].x = ship.x
                next_pos[ship.id].y = ship.y
                commands[ship.id] = MoveCommand(self.id, ship.id, 'O')
                q.extend(next_ships[ship.y][ship.x])
                next_ships[ship.y][ship.x].append(ship)

        ret = list(commands.values())
        if (len(next_ships[self.shipyard.y][self.shipyard.x]) == 0 and self.halite >= 1000 and rem > 100
                and np.sum(game.cells[:, :, 0]) * 3 > self.map_starting_halite):
            ret.append(SpawnShipCommand(self.id, None))
        return ret

    def __repr__(self):
        return f'FastBot(id={self.id}, eps={self.eps})'


if __name__ == '__main__':
    g = Game([FastBot(), FastBot()], size=32)
    g.generate_start()
    g.run(replay=True)
Ejemplo n.º 16
0
                #surface.blit(imagen, imagen.get_rect(center=p))
        else:
            surface.blit(self.mano, self.mano.get_rect(center=self.varitaje.nextpos()).move(*DELTAVARITA))

        if self.tomateando == 0:
            if self.sound_tomate:
                self.sound_tomate = None
                sounds.tomato()
                
            imagen = self.tomate_aplastado
            surface.blit(imagen, imagen.get_rect(center=surface.get_rect().center))

    def doEasterEgg(self):
        self.mano = pygame.image.load("escenario/manos/mano-easteregg.png").convert_alpha()

    def setVoluntario(self, voluntario, hacerPuff):
        """cambia el voluntario. Si hacerPuff es true, entonces baja la varita y hace aparecer el humito"""
        self.voluntario = voluntario
        if hacerPuff:
            self.puffing = MAXPUFFING
            if DEBUG: print "------------MaxPuffing-------------"

    def tomateame(self):
        self.tomateando = MAXTOMATEANDO
        self.tomateMB = interpol.MadamBezier(
                            self.audiencia.getRandomPersonPosition(),(400,300)) 
        
if __name__ == "__main__":
    g = Game(800, 600, framerate = 200)
    g.run( AudienciaScene(g, 10) )