Пример #1
0
 def get_game(self, hid, room, table):
     key = str(room) + '-' + str(table)
     game = self.games.get(key)
     if not game:
         game = GomokuGame()
         game.set_bplayer(hid)
         opponent = self.get_opponent(hid)
         game.set_wplayer(opponent)
         self.games[key] = game
     return game
Пример #2
0
class GomokuApp(App):
    def __init__(self, **kwargs):
        super(GomokuApp, self).__init__(**kwargs)
        self.game = GomokuGame(GuiPlayer, GuiPlayer)
        self.layout = BoardLayout()
        # self.game = GomokuGame(GuiTestPlayer, GuiTestPlayer)
        # self.game = GomokuGame(ReinforceAIPlayer, ReinforceRandomPlayer)
        # self.game = GomokuGame(RandomAIPlayer, RandomAIPlayer)

    def build(self):
        self.game.set_event_callback(self.callback)
        return self.layout

    def on_start(self):
        Thread(target=self.game.start, daemon=True).start()

    @mainthread
    def callback(self, event):
        if isinstance(event, MoveEvent):
            self.layout.board_grid.update_stone(event)
        elif isinstance(event, BoardUpdateEvent):
            self.layout.board_grid.board_value_listener(event)
        elif isinstance(event, GameOverEvent):
            self.stop()
Пример #3
0
class GomokuApp(App):
    def __init__(self, **kwargs):
        super(GomokuApp, self).__init__(**kwargs)
        self.layout = BoardLayout()
        # self.game = GomokuGame(GuiPlayer, GuiPlayer)
        # self.game = GomokuGame(GuiTestPlayer, GuiTestPlayer)
        self.game = GomokuGame(ReinforceAIPlayer, ReinforceAIPlayer)
        # self.game = GomokuGame(RandomAIPlayer, RandomAIPlayer)

    def build(self):
        self.game.set_event_callback(self.callback)
        return self.layout

    def on_start(self):
        Thread(target=self.game.start, daemon=True).start()

    @mainthread
    def callback(self, event):
        if isinstance(event, MoveEvent):
            self.layout.board_grid.update_stone(event)
        elif isinstance(event, BoardUpdateEvent):
            self.layout.board_grid.board_value_listener(event)
        elif isinstance(event, GameOverEvent):
            self.stop()
Пример #4
0
def evaluation_function(individual):
    # start_time = time.time()
    weights = individual[0:p.NEEDED_WEIGHTS]
    biases = individual[p.NEEDED_WEIGHTS:(p.NEEDED_WEIGHTS + p.NEEDED_BIASES)]
    splitted_weights = new_ann.convert_weights_to_arrays(p.LAYER_SIZES, weights)
    splitted_biases = new_ann.convert_biases_to_arrays(p.LAYER_SIZES, biases)
    # ann = new_ann.neuralnetwork(splitted_weights, splitted_biases, LAYER_SIZES, activation=[nnet.sigmoid, nnet.sigmoid, nnet.sigmoid, nnet.sigmoid])
    ann = new_ann.neuralnetwork(splitted_weights, splitted_biases, p.LAYER_SIZES,
                                activation=[new_ann.relu, new_ann.relu, new_ann.relu, new_ann.relu])
    reg_ai_player = Player_fast(None, random_start=p.RANDOM_START)
    ann_player = ANN_Player(None, ann)
    game = GomokuGame.playToTheEnd(reg_ai_player, ann_player)

    fit = len(game.moves)
    if game.winner == ann_player.color:
        fit += 10000.0
    elif game.winner == game.DRAW:
        fit += 5000.0
    # print("Moves:", len(game.moves))
    return len(game.moves),
Пример #5
0
 def __init__(self, **kwargs):
     super(GomokuApp, self).__init__(**kwargs)
     self.game = GomokuGame(GuiPlayer, GuiPlayer)
     self.layout = BoardLayout()
Пример #6
0
 def __init__(self, **kwargs):
     super(GomokuApp, self).__init__(**kwargs)
     self.layout = BoardLayout()
     # self.game = GomokuGame(GuiPlayer, GuiPlayer)
     # self.game = GomokuGame(GuiTestPlayer, GuiTestPlayer)
     self.game = GomokuGame(ReinforceAIPlayer, ReinforceAIPlayer)
Пример #7
0
from game import GomokuGame
from player import GuiPlayer, RandomAIPlayer, ReinforceAIPlayer, GuiTestPlayer

game = GomokuGame(ReinforceAIPlayer, ReinforceAIPlayer)
game.start()