def generateTrainingData(self, size=LearningConfigs.SAMPLE_SIZE, aim=LearningConfigs.AIM_SCORE): print("Begin generating training data...") data = [] dataSize = 0 while dataSize < size: game = Game() cache = [] score = 0 while True: movement = random.randint(-1, 1) observer, reward, length, lose = game.moveByRelativeDirection( movement) if not lose: cache.append([observer, self.__oneHotMove(movement)]) score += reward else: break if (score >= aim): data.append([cache, score]) dataSize += 1 print("Training data({:d}/{:d}): Score = {:d}".format( len(data), size, score)) print("Training data ready!") return data
class Main(object): # БАЗОВЫЙ ЗАПУСК def __init__(self): self.local_version = 1 self.flag = pg.RESIZABLE self.size = self.width, self.height = 1280, 720 self.fps = 60 pg.display.set_mode((self.width, self.height), self.flag) icon = pg.image.load('images\\icon.png') pg.display.set_icon(icon) pg.display.set_caption('RATORI') # Новая игра def game_start(self): """Старт игры""" self.menu = Menu(self.size) self.game = Game(self.size) self.game_state = True self.game_cycle() # Игровой цикл def game_cycle(self): g = pg.display.get_surface() # Игровой цикл while self.game_state: # Игровые события for e in pg.event.get(): # Выход из игры if e.type == pg.QUIT: pg.quit() quit() if e.type == pg.KEYDOWN and e.key == pg.K_F11: if g.get_flags() & pg.FULLSCREEN: self.flag = pg.RESIZABLE else: self.flag = pg.FULLSCREEN pg.display.set_mode((self.width, self.height), self.flag) # Меню/Игра if e.type == pg.KEYDOWN and e.key == pg.K_ESCAPE: self.menu.menu_state = not self.menu.menu_state if self.menu.menu_state == True: self.menu.update(e) else: self.game.update(e) # Обновление меню if self.menu.menu_state: self.menu.draw(g) #Обновление игры else: self.game.draw(g) pg.time.Clock().tick(self.fps) pg.display.flip()
def game_start(self): """Старт игры""" self.menu = Menu(self.size) self.game = Game(self.size) self.game_state = True self.game_cycle()
def game_start(self): """ Game start """ self.menu = Menu(self.size) self.game = Game(self.size) self.game_state = True self.game_cycle()
class Main(object): def __init__(self): """ Базовый запуск """ self.local_version = 1 self.flag = pg.RESIZABLE self.size = self.width, self.height = 1280, 720 self.fps = 60 pg.display.set_mode(self.size, self.flag) icon = pg.image.load('images\\iconPNG.png') pg.display.set_icon(icon) pg.display.set_caption('RATORI') #Game pass def game_start(self): self.menu = Menu(self.size) self.game = Game(self.size) self.game_state = True self.game_cycle() #game_cycle def game_cycle(self): g = pg.display.get_surface() while self.game_state: # ______ ___ _____ _____ ____ for e in pg.event.get(): # Выход из игры if e.type == pg.QUIT: pg.quit() quit() if e.type == pg.KEYDOWN and e.key == pg.K_F11: if g.get_flags() & pg.FULLSCREEN: self.flag = pg.RESIZABLE else: self.flag = pg.FULLSCREEN pg.display.set_mode((self.widht, self.height), self.flag) #Menu drop game if e.type == pg.KEYUP and e.key == pg.K_ESCAPE: self.menu.menu_state = not self.menu.menu_state if self.menu.menu_state == True: self.menu.update(e) else: self.game.update(e) # Обнавление меню if self.menu.menu_state: self.menu.draw(g) else: self.game.draw(g) pg.time.Clock().tick(self.fps) pg.display.flip()
class Main(object): """Конструктор""" def __init__(self): self.local_version = 1 self.flag = pg.RESIZABLE self.size = self.width, self.hiegth = 1280, 720 self.fps = 60 pg.display.set_mode((self.width, self.hiegth), self.flag) icon = pg.image.load("images\exit.png") pg.display.set_icon(icon) pg.display.set_caption("RATORI") """Новая игра""" def game_start(self): self.menu = Menu(self.size) self.game = Game(self.size) self.game_state = True self.game_cycle() """Игровой цикл""" def game_cycle(self): g = pg.display.get_surface() while self.game_state: #СОБЫТИЯ for e in pg.event.get(): #Выход из игры if e.type == pg.QUIT: pg.quit() quit() if e.type == pg.KEYDOWN and e.key == pg.K_F11: if g.get_flags() & pg.FULLSCREEN: self.flag = pg.RESIZABLE else: self.flag = pg.FULLSCREEN pg.display.set_mode((self.width, self.hiegth), self.flag) if self.menu.menu_state == True: self.menu.update(e) else: self.game.update(e, g) #Обновление меню if self.menu.menu_state: self.menu.draw(g) #Обновление игры else: self.game.draw(g) pg.time.Clock().tick(self.fps) pg.display.flip()
def test(nn): game = Game() dirc = 0 while True: observe, reward, length, lose = game.moveByRelativeDirection(dirc) print("[Ding]: dirc = {:d}, len = {:d}".format(dirc, length)) print(observe) if not lose: dirc = nn.predict(observe) else: return length
def start(self): for iteration in range(self.loop): print('\tplaying game {}/{}'.format(iteration, self.loop)) # Make a game self.game = Game(players=self.players, print_board_state=False) self.game.start() if self.game.winner: winner_moves = self.game.get_winner_moves() self.all_games_moves.append([ self.game.move_number, [[move['board_state'], move['move']] for move in winner_moves] ])
class PlayABunchOfGames(): def __init__(self, players, loop=100): self.players = players self.loop = loop self.all_games_moves = [ ] # each element is [ q_moves, [ [board1, move1], [board2, move2] ] ] def start(self): for iteration in range(self.loop): print('\tplaying game {}/{}'.format(iteration, self.loop)) # Make a game self.game = Game(players=self.players, print_board_state=False) self.game.start() if self.game.winner: winner_moves = self.game.get_winner_moves() self.all_games_moves.append([ self.game.move_number, [[move['board_state'], move['move']] for move in winner_moves] ]) def get_top_moves(self, top_percentage=1.0): """ Returns the moves of the games that were won in less than the average number of moves Arguments: - top_percentage (float): games that finished in less than average_moves * top_percentage moves will be returned. """ q_moves_list = [iteration[0] for iteration in self.all_games_moves] if len(q_moves_list) == 0: print( 'This is wrong. This should not happen. But guess what? It happened!' ) q_moves_average = sum(q_moves_list) / len(q_moves_list) threshold = np.ceil(q_moves_average * top_percentage) top_moves = [] for game_moves in self.all_games_moves: if game_moves[0] < threshold: top_moves += game_moves[1] print('Average number of moves:', q_moves_average) print('\tThreshold: {}\tQ top moves: {}', threshold, len(top_moves)) return top_moves
randomness, probablilistic = calculate_randomness(latest_generation_trained) # Make players agent_1 = Agent( # current gen player_id=1, player_colour='white', model='models/model_{}.h5'.format(latest_generation_trained) if latest_generation_trained > 1 else None) agent_1.set_randomness_level(randomness) agent_1.set_probabilistic_level(probablilistic) agent_2 = Agent( # previous gen player_id=2, player_colour='red', model='models/model_{}.h5'.format(latest_generation_trained - 1) if latest_generation_trained > 1 else None) agent_2.set_randomness_level(randomness) agent_2.set_probabilistic_level(probablilistic) players = [agent_1, agent_2] # Make game game = Game(players=players, print_board_state=True, print_board_delay=1, clear_screen_before_printing_board=True) game.start() if game.winner: print('Player {} won'.format(game.winner)) print('Q moves: {}'.format(game.move_number))
def main(xDim=None, yDim=None): game = Game(xDim, yDim) try: game.run() finally: game.destroy()
import pygame import sys from configs import configs from modules.Game import Game pygame.init() screen = pygame.display.set_mode((configs.WIN_WIDTH, configs.WIN_HEIGHT)) pygame.display.set_caption("Ding Snake Game") game = Game(screen) while True: event = None for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: direction = 0 elif event.key == pygame.K_RIGHT: direction = 1 elif event.key == pygame.K_DOWN: direction = 2 elif event.key == pygame.K_LEFT: direction = 3 else: continue observe, reward, len, lose = game.moveByAbsoluteDirection( direction) if lose: sys.exit()
debug = True silence = False player = None vc = None OPUS_LIBS = [ 'libopus-0.x86.dll', 'libopus-0.x64.dll', 'libopus-0.dll', 'libopus.so.0', 'libopus.0.dylib' ] # Modules db = Db() modules = [] modules.append(Memes(db, client)) modules.append(Personality(db)) modules.append(Spells(db)) modules.append(Game(db)) modules.append(SoundBoard(db)) # Access Level def accessLevel(channel, person): roles = list(map(lambda x: x.name, person.roles)) if person.id in superAdmins: return 2 elif "Hodge Podge Rangler" in roles: return 1 elif "Robot-Whisperer" in roles: return 1 else: return 0