def __init__(self, player, handler=None): self._player = player self._logic_handler = GameLogicHandler( ) if handler is None else handler self._screen = GameScreen() self._screen.draw(self._logic_handler.board, 0, 1, config.FPS, " -", True, Action.LEFT)
class ColonistGame(object): def __init__(self): pass def initialize_game(self): #initialize model instances print "initialize game" self.model_instance = GameModel() for colonist in self.model_instance.colonistlist: print colonist.get_name() self.root = Tk() self.app = GameScreen(self.root, game_instance) self.root.mainloop() self.app.update_screen() def next_turn(self): """ Model update """ self.model_instance.resolve_turn_phase() """ Screen update """ self.app.update_screen() print "Next turn"
def build(self): """This method is build app""" root = GameScreenManager() root.add_widget(StartScreen(name="start")) root.add_widget(PlayerScreen(name="players")) root.add_widget(GameScreen(name="players2")) return root
def initialize_game(self): #initialize model instances print "initialize game" self.model_instance = GameModel() for colonist in self.model_instance.colonistlist: print colonist.get_name() self.root = Tk() self.app = GameScreen(self.root, game_instance) self.root.mainloop() self.app.update_screen()
def __init__(self, width, height): title = f'Meta Tic Tac Toe v{const.VERSION}' super().__init__(width, height, title, resizable=True, fullscreen=True) self.set_min_size(const.MIN_WIDTH, const.MIN_HEIGHT) self.background = None self.unfocused = True # Create application screens self.screens = { AppScreen.Start: StartScreen(self), AppScreen.Game: GameScreen(self), AppScreen.End: EndScreen(self) }
def __init__(self): self.load_settings() self.tps_max = 2.0 self.bw = B_WIDTH self.bh = B_HEIGHT self.width = W_WIDTH self.height = W_HEIGHT self.screen = pygame.display.set_mode((self.width, self.height)) self.num_of_bombs = NUM_OF_BOMBS self.game_screen = GameScreen(self, self.num_of_bombs, BOARD_WIDTH, BOARD_HEIGHT) self.info_screen = InfoScreen(self, BOARD_WIDTH, 0, INFO_WIDTH, INFO_HEIGHT) self.menu_screen = MenuScreen(self, BOARD_WIDTH, 0, INFO_WIDTH, INFO_HEIGHT) self.show_menu = False self.clock = pygame.time.Clock() self.timer_sec = 0 self.time_start = time.time() self.restart = False self.freeze = False self.win = -1 # 0 - lose, 1 - win, -1 - default
def __init__(self): pygame.mixer.pre_init(frequency=44100, size=-16, channels=2, buffer=512) pygame.init() pygame.mixer.init() pygame.display.set_caption('S N A K E') pygame.mouse.set_visible(True) self.snakeSpeed = config.SNAKE_SPEED self.display = pygame.display.set_mode( (config.DIS_WIDTH, config.DIS_HEIGHT)) self.clock = pygame.time.Clock() self.menuScreen = MenuScreen() self.gameScreen = GameScreen() self.menuScreen.gameScene = self.gameScreen self.gameScreen.menuScene = self.menuScreen
def create_screen(self): game_screen = GameScreen() return game_screen
class Game: def __init__(self): self.load_settings() self.tps_max = 2.0 self.bw = B_WIDTH self.bh = B_HEIGHT self.width = W_WIDTH self.height = W_HEIGHT self.screen = pygame.display.set_mode((self.width, self.height)) self.num_of_bombs = NUM_OF_BOMBS self.game_screen = GameScreen(self, self.num_of_bombs, BOARD_WIDTH, BOARD_HEIGHT) self.info_screen = InfoScreen(self, BOARD_WIDTH, 0, INFO_WIDTH, INFO_HEIGHT) self.menu_screen = MenuScreen(self, BOARD_WIDTH, 0, INFO_WIDTH, INFO_HEIGHT) self.show_menu = False self.clock = pygame.time.Clock() self.timer_sec = 0 self.time_start = time.time() self.restart = False self.freeze = False self.win = -1 # 0 - lose, 1 - win, -1 - default def run(self): """ Main loop """ cheat_code = ['x', 'y', 'z', 'z', 'y'] key_queue = [] self.draw() while not self.restart: for event in pygame.event.get(): if event.type == pygame.KEYDOWN: key_queue.append(event.unicode) if len(key_queue) >= 6: key_queue.pop(0) if key_queue == cheat_code: self.xyzzy() if event.type == pygame.QUIT: sys.exit(0) if not self.freeze: if event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT: keys = pygame.key.get_pressed() if self.game_screen.block_on_click(): self.win = 0 self.game_over() elif self.game_screen.check_bombs(): self.win = 1 self.game_over() self.draw() if event.type == pygame.MOUSEBUTTONDOWN and event.button == RIGHT: if self.game_screen.on_right_click(): self.win = 1 self.game_over() self.draw() if self.show_menu: self.menu_screen.text_events(event) self.draw_menu() else: self.draw_info() pygame.display.flip() def restart_game(self): """ Stops main loop and resets game """ self.restart = True def draw(self): """ Draw game board """ self.game_screen.draw() def draw_info(self): """ Draws info screen """ self.info_screen.draw() def draw_menu(self): """ Draws menu screen """ self.menu_screen.draw() def game_over(self): """ Freezes game board and time, reveals al bombs """ self.info_screen.freeze_time() self.freeze = True for x in range(B_WIDTH): for y in range(B_HEIGHT): self.game_screen.game_net[x][y].boom() def xyzzy(self): """ Reveals all bombs locations with dark grey color """ for x in range(B_WIDTH): for y in range(B_HEIGHT): self.game_screen.game_net[x][y].cheats_enabled = True self.draw() def load_settings(self): """ Loads settings from settings.csv file """ try: if not os.path.isfile("settings.csv"): raise FileLoadErrorException with open('settings.csv') as cfg: data = cfg.readlines() print("Settings:") for line in data: setting = line.split(" = ") print(setting[0], " - ", setting[1]) if setting[0] == 'B_WIDTH': global B_WIDTH B_WIDTH = int(setting[1]) if setting[0] == 'B_HEIGHT': global B_HEIGHT B_HEIGHT = int(setting[1]) if setting[0] == 'NUM_OF_BOMBS': global NUM_OF_BOMBS NUM_OF_BOMBS = int(setting[1]) except FileLoadErrorException: print("Can't find configuration file. Default settings loaded.") def apply_settings(self): self.bw = self.menu_screen.bw.getText() self.bh = self.menu_screen.bh.getText() self.num_of_bombs = self.menu_screen.nob.getText() self.save_settings() self.restart_game() def save_settings(self): with open('settings.csv', 'w') as cfg: print(self.num_of_bombs) cfg.write(f'B_WIDTH = {self.bw}\n' f'B_HEIGHT = {self.bh}\n' f'NUM_OF_BOMBS = {self.num_of_bombs}')
class SnakeGame: """ Implements the main game loop. """ def __init__(self, player, handler=None): self._player = player self._logic_handler = GameLogicHandler( ) if handler is None else handler self._screen = GameScreen() self._screen.draw(self._logic_handler.board, 0, 1, config.FPS, " -", True, Action.LEFT) def start(self, gen=" -", bonus_points=False): alive = True clock = Clock() turn = 1 self._screen.draw(self._logic_handler.board, self._player.score, turn, config.FPS, gen, alive, Action.LEFT, start_msg=True) ask_start = True while ask_start: for event in pygame.event.get(): if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE: ask_start = False break elif event.type == pygame.QUIT: pygame.quit() exit() last_food_dist = self._logic_handler.abs_food_dist() while alive: events = pygame.event.get() for e in events: if e.type == pygame.QUIT: pygame.quit() exit() move = self._player.act(handler=self._logic_handler, user_events=events) state = self._logic_handler.update(move) alive = (state != GameLogicHandler.State.DEAD) if state == GameLogicHandler.State.FOOD_EATEN: self._player.score += config.FOOD_SCORE # bonus points if bonus_points: new_food_dist = self._logic_handler.abs_food_dist() self._player.score += config.FARTHER_FROM_FOOD_SCORE if new_food_dist >= last_food_dist else config.CLOSER_TO_FOOD_SCORE last_food_dist = new_food_dist # draw self._screen.draw(self._logic_handler.board, self._player.score, turn, config.FPS, gen, alive, move) clock.tick(config.FPS) turn += 1 if not alive: print(move) for b in self._logic_handler.board: print(b)