Example #1
0
    def __init__(self,
                 model_config,
                 game_config,
                 player1_model=None,
                 player1_mode='model_training',
                 player2_model=None,
                 player2_mode='random',
                 model_dir='.'):

        self.model_config = model_config
        self.game_config = game_config
        self.device = torch.device(
            'cuda:0') if torch.cuda.is_available() else torch.device('cpu')

        self.player1_mode = player1_mode
        self.player2_mode = player2_mode

        self.player1_model = player1_model
        self.player2_model = player2_model

        if player1_mode.startswith('model'):
            if player1_model is None:
                self.player1_model = GameModel(game_config)
            self.player1_model.to(self.device)

        if player2_mode.startswith('model'):
            if player2_model is None:
                self.player2_model = GameModel(game_config)
            self.player2_model.to(self.device)

        self.model_dir = model_dir
        self.vis = Visdom(env=self.model_config.model_name)
Example #2
0
def main():
    model = GameModel()
    view = GameView(800, 600)
    controller = GameController(model, view)
    # ---
    while (True):
        controller.update()
Example #3
0
 def __init__(self):
     self.game = GameModel()
     self.game.king_captured = self.king_captured
     self.game.init()
     self.game.mode = 'play'
     self.game.add_message = print
     self.net_engine = NetEngine(self.game)
     self.init_net_engine_socket()
Example #4
0
    def __init__(self, **kwargs):
        super(Game, self).__init__(**kwargs)
        self.game_model = GameModel()
        self.game_model.king_captured = self.king_captured
        self.game_model.on_message.append(self.update_label)
        self.net_engine = NetEngine(self.game_model)

        self.score = [0, 0]

        self.board_view = BoardView(self.game_model)
        self.add_widget(self.board_view)
        self.game_model.on_init.append(self.board_view.reset)

        self.info_pane = BoxLayout(orientation='vertical', size_hint_min_y=500)
        self.add_widget(self.info_pane)

        row_args = {'size_hint': (1, 0), 'size_hint_min_y': 70}

        if not env.is_mobile:
            self.info_pane.add_widget(WrappedLabel(halign='center', text=self.game_title, **row_args))

        self.button_pane = BoxLayout(orientation='vertical', size_hint=(1, .4))
        self.info_pane.add_widget(self.button_pane)

        self.button_pane.add_widget(WrappedButton(
            halign='center',
            text='Tutorial: How to play',
            on_press=self.start_tutorial))
        self.button_pane.add_widget(WrappedButton(
            halign='center',
            text='Start Game' if env.is_mobile else 'Start Game: Play with friends',
            on_press=self.start_game))

        self.score_label = WrappedLabel(
            halign='center',
            **row_args)
        self.info_pane.add_widget(self.score_label)

        self.label = WrappedLabel(halign='center', valign='bottom')
        self.info_pane.add_widget(self.label)

        self.text_input = TextInput(
            multiline=False,
            text_validate_unfocus=env.is_mobile,
            **row_args)
        self.text_input.bind(on_text_validate=self.handle_text_input)
        if not env.is_mobile:
            def steal_focus(*_args):
                if not self.text_input.focus:
                    self.text_input.focus = True
            self.text_input.bind(focus=steal_focus)
        self.info_pane.add_widget(self.text_input)

        self.game_model.add_message('')
        self.game_model.add_message(self.game_title if env.is_mobile else 'Welcome to Chess 2!')

        self.bind(size=self.resized)
        Clock.schedule_interval(self.on_clock, 1/30)
def main():

    pygame.init()

    event_manager = EventManager()
    game_model = GameModel(event_manager)
    keyboard_controller = KeyboardController(event_manager)
    time_controller = TimeController(event_manager)
    game_view = GameView(
        event_manager, game_model,
        time_controller)  # sollte von GameModel aufgemacht werden

    time_controller.run()
Example #6
0
def main():
    pygame.init()

    pygame.display.set_caption("The 15 Puzzle")
    win = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))
    clock = pygame.time.Clock()
    event_manager = EventManager()
    game_board = GameModel()
    game_view = GameView(win)
    spinner = CPUSpinnerController(event_manager, clock)
    game_controller = GameController(game_board, game_view)

    event_manager.registerListener(TickEvent(), game_controller)
    event_manager.registerListener(QuitEvent(), spinner)

    spinner.run()

    pygame.quit()
 def __init__(self):
     self.__model = GameModel()
     self.__sprites = pg.sprite.Group()
     self.__attacks = pg.sprite.Group()
     self.__view = GameView(self.__model.player,
                            self.__model.level,
                            self.__sprites,
                            self.__attacks)
     self.__player = self.__model.player
     self.__level = self.__model.level
     self.__clock = pg.time.Clock()
     # inicializa os modulos do pygame e retorna uma tupla com resultados
     self.__modules = pg.init()
     self.__running = True
     self.__menu = True
     self.__game_over = False
     self.__start_playing = False
     self.__win = False
Example #8
0
def get_newgame():
    '''returns the game scene'''
    scene = Scene()

    # model
    model = GameModel()

    # controller
    controller = GameController(model)

    # view
    view = GameView(model)

    # set controller in model
    model.set_controller(controller)

    # add controller
    scene.add(controller, z=1, name="controller")

    # add view
    #scene.add(BackgroundLayer(), z=0, name="background")
    scene.add(view, z=2, name="view")

    return scene
from game_model import GameModel, GameState, ActionProperties, GameAction, Game
from graph_model import GraphModel
from pg import ppo

import numpy as np
import tensorflow as tf


n_blocks = 4
max_moves = 20
block_names = [chr(i+65) for i in range(n_blocks)]


blocks_world = GameModel(
    global_enums={'filler': [0]},
    object_enums={'label': block_names},
    action_enums={'move': {'on_top_of': ActionProperties(n_nodes=2),
                           'to_table': ActionProperties(n_nodes=1)}},
    edge_enums={'position': ['above', 'below'], 'role': ['from', 'to']})


class BlocksWorldGame(Game):
    """Basic blocks world game"""

    def __init__(self):
        self._stacks = []
        shuffled = [name for name in block_names]
        random.shuffle(shuffled)
        for name in shuffled:
            maximum = len(self._stacks)
            i = random.randrange(maximum+1)
            if i == maximum:
Example #10
0
from fireplace import cards
from fireplace.game import Game
from fireplace.exceptions import GameOver
from hearthstone.enums import CardClass

from agent import HearthStoneGod
from game_model import GameModel

cards.db.initialize('zhCN')

if __name__ == "__main__":
    model_data = torch.load('./models/model1.1/105_0.99.pth',
                            map_location='cpu')
    game_config = model_data['game_config']

    game_model = GameModel(game_config)

    deck1 = [c[1] for c in game_config.card_config.cards_list[1:] * 4]
    player1 = HearthStoneGod('Player1',
                             deck1,
                             CardClass.MAGE.default_hero,
                             game_config,
                             mode='manual')

    deck2 = [c[1] for c in game_config.card_config.cards_list[1:] * 4]
    player2 = HearthStoneGod('Player2',
                             deck2,
                             CardClass.MAGE.default_hero,
                             game_config,
                             game_model=game_model,
                             mode='model_play')
Example #11
0
File: main.py Project: yonlif/Snake
from controller import BasicController, UserController
from ai_controller import AIController
from game_model import GameModel
from view import GameView

if __name__ == '__main__':
    model = GameModel(board_size=30)
    view = GameView(model.board_size)
    # controller = UserController(model, view)
    controller = AIController(model, view, delay=0)
    controller.play()
Example #12
0
def main():
    # MVC pattern (Model View Controller)
    model = GameModel()
    controller = GameController(model)
    view = GameView(model, controller)
Example #13
0
 def __init__(self):
     pygame.init()
     self.__GameModel = GameModel(self)
     self.__GameView = GameView(self, self.__GameModel)
     self.__sounds = Sound()
Example #14
0
import csv
from game_model import GameModel
from board import Board

games = []
WHITE = "white"
BLACK = "black"

with open('games.csv') as csvfile:
    gamereader = csv.reader(csvfile)
    for row in gamereader:
        game = GameModel(row)
        games.append(game)

for game in games:
    white_turn = True
    board = Board()
    moves = game.moves.split(" ")
    for move in moves:
        if white_turn:
            board.execute_move(move, WHITE, True)
        else:
            board.execute_move(move, BLACK, True)
Example #15
0
def main():
    pygame.init()
    screen = pygame.display.set_mode((800, 600))
    pygame.display.set_caption("SlippyPants")
    game = GameModel("levels/graphic_test.json", 800, 600)
    game.run(screen)
Example #16
0
 def _build_new_game(self):
     self.model = GameModel()
     self.sprites = pg.sprite.LayeredDirty()
     self.enc = EncounterRenderer(self.model, (0, 100, 800, 500))
     self.hud = Hud(self.model, (0, 0, 800, 100))