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
Beispiel #2
0
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()
Beispiel #3
0
    def game_start(self):
        """Старт игры"""
        self.menu = Menu(self.size)
        self.game = Game(self.size)
        self.game_state = True

        self.game_cycle()
Beispiel #4
0
    def game_start(self):
        """ Game start """
        self.menu = Menu(self.size)
        self.game = Game(self.size)
        self.game_state = True

        self.game_cycle()
Beispiel #5
0
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()
Beispiel #6
0
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()
Beispiel #7
0
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
Beispiel #8
0
 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]
             ])
Beispiel #9
0
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
Beispiel #10
0

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))
Beispiel #11
0
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()
Beispiel #13
0
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