예제 #1
0
def main():
    print('Playing Monopoly!')
    game = Game()
    game.run([Player(1), Player(2)])
예제 #2
0
##############################################################
# Name:  Bryan Francis
# Project : GoStop Python
# Class : OPL Spring 2020
# Date : 3/27/2020
##############################################################
from Game import Game
   
game = Game()
game.startGame()


예제 #3
0
 def setUp(self):
     from Game import Game
     self.g = Game(5)
예제 #4
0
from Game import Game
from Table import Table

if __name__ == '__main__':
    table = Table()
    game = Game(table)
    game.play()
예제 #5
0
df = pd.DataFrame(columns = ['players'])
for player in players:
	df.loc[player.idno] = player

for epoch in range(nepochs):
	epoch_start = time.time()
	# Assigning players randomly to different games
	print('Assigning Players')
	players = df.players.values.copy()
	gameplayers = [np.random.choice(players, size = 4, replace=False) for i in range(ngames)]
	print('Running games')

	# Running the games
	t0 = time.time()
	for i in range(ngames):
		game = Game(players = gameplayers[i])
		game.run_game()
	print(f'Running {ngames} games in {time.time() - t0:.2f}s')

	
	game.plot_card_play(savefig = True, savefig_name = f'../images/epoch_{epoch}_game_{i}_cardplay.pdf')
	game.plot_bidding(savefig = True, savefig_name = f'../images/epoch_{epoch}_game_{i}_bidding.pdf')

	print('Generating new Players')
	# Adding scores to dataframe
	df['score'] = 0
	for player in players:
		df.loc[player.idno,'score'] = player.score
	df = df.sort_values('score', ascending=False)

	# Selecting only players with positive scores
예제 #6
0
def Evaluation(player1, player2):

    victories1 = 0
    victories2 = 0
    for _ in range(100):
        # print("Game number", _ + 1)
        game = Game()

        who_won = None

        number_of_moves = 0
        current_player = game.player_turn
        is_over = False
        while not is_over:
            # moves = game.available_moves()
            game.deck = game.create_new_deck()
            if current_player == 1:
                # Get the card from either the top deck or the discard pile.
                # Choose whether to take card from discard or rack'o deck.
                game.deck = game.create_new_deck()
                # print("player1_rack_before", game.player1_rack)
                top_card = discard_or_deck(game)
                player1_rack_copy = deepcopy(game.player1_rack)
                # print("player1_rack", game.player1_rack)
                game.player1_rack = player1.get_action(game, top_card,
                                                       game.player1_rack)
                # print("Rack copy player 1", player1_rack_copy)
                # print("game rack player 1", game.player1_rack)
                if player1_rack_copy != game.player1_rack:
                    swapped_card = get_swapped_card(player1_rack_copy,
                                                    game.player1_rack)
                    game.append_to_discard(swapped_card)
                else:
                    game.append_to_discard(top_card)
                current_player = 2  # Change the current player.
                game.player_turn = 2
            else:
                game.deck = game.create_new_deck()
                # print("player2_rack_before", game.player2_rack)
                top_card = discard_or_deck(game)
                player2_rack_copy = deepcopy(game.player2_rack)
                # print("player2_rack", game.player2_rack)
                game.player2_rack = player2.get_action(game, top_card,
                                                       game.player2_rack)
                # print("Rack copy player 2", player2_rack_copy)
                # print("game rack player 2", game.player2_rack)
                if player2_rack_copy != game.player2_rack:
                    swapped_card = get_swapped_card(player2_rack_copy,
                                                    game.player2_rack)
                    game.append_to_discard(swapped_card)
                else:
                    game.append_to_discard(top_card)
                current_player = 1
                game.player_turn = 1

            # if chosen_play == 'n':
            #     if current_player == 1:
            #         current_player = 2
            #     else:
            #         current_player = 1
            # print('Chose: ', chosen_play)
            # # game.print_board()
            # game.play(chosen_play)
            # game.print_board()
            number_of_moves += 1
            if game.check_racko(game.player1_rack) is True:
                who_won = 1
                is_over = True
            if game.check_racko(game.player2_rack) is True:
                who_won = 2
                is_over = True

            # It is advisable to increase the number of moves. Initial value was 100.
            if number_of_moves >= 1000:
                is_over = True
                who_won = -1
                victories1 = -1
                victories2 = -1
                fitness1 = -1
                fitness2 = -1

                # print('No Winner!')

        if who_won == 1:
            victories1 += 1
        if who_won == 2:
            victories2 += 1
    # print(victories1, victories2)
    # print('Player 1: ', victories1 / (victories1 + victories2))
    # print('Player 2: ', victories2 / (victories1 + victories2))

    if victories1 > victories2:
        fitness1 = 1
        fitness2 = -1

    if victories1 < victories2:
        fitness1 = -1
        fitness2 = 1

    if victories1 == victories2:
        fitness1 = -1
        fitness2 = -1

    fitness = [fitness1, fitness2]
    # score1 = 0
    # score2 = 0
    # try:
    #     score1 = victories1 / (victories1 + victories2)
    # except:
    #     score1 = -np.inf
    # try:
    #     score2 = victories2 / (victories1 + victories2)
    # except:
    #     score2 = -np.inf
    score1 = victories1 / (victories1 + victories2)
    score2 = victories2 / (victories1 + victories2)
    victories = [victories1, victories2, score1, score2]
    print("Fitness values are ", fitness)
    return victories
예제 #7
0
파일: Menu.py 프로젝트: dguis/TextAdventure
 def start(self):
     Game(self.player, self.r)
예제 #8
0
 def update(self):
     if self.game.gameOverStatus:
         self.menu.updateHighScore(self.game.score)
         self.keyboard.menu = True
         self.game = Game(1200, 800)
         self.game.newRound(1)
     self.mousePos = self.getMousePos()
     if (len(self.game.enemies) == 0):
         self.handleGameWin()
     for explosion in self.explosions:
         explosion.update()
         if explosion.isFinished():
             self.explosions.remove(explosion)
             continue
     for enemy in self.game.enemies:
         enemy.update(self.game.player)
         self.addProjectile(enemy, "shell",
                            enemy.turret.aim(self.game.player))
     for item in self.game.terrain.pickupItems:
         item.update()
         if self.game.player.pickUpItem(item):
             self.game.terrain.pickupItems.remove(item)
     for projectile in self.projectiles:
         projectile.update()
         if not projectile.isWithinRange() or self.hitWall(projectile):
             self.addExplosion(projectile)
             continue
         # colliding with shield
         if (projectile.isColliding(
             (self.game.player.pos.getP(), self.game.player.shieldSize))
                 and self.game.player.shieldStatus > 0):
             self.addExplosion(projectile)
             self.game.player.shield.receiveHit(projectile.pos)
             self.game.player.decreaseShield(projectile.getType())
             continue
         # colliding with the actual player
         if (projectile.isColliding((self.game.player.getPosAndRadius()))):
             self.addExplosion(projectile)
             self.game.player.decreaseHealth(projectile.getType())
             if self.game.player.health <= 0:
                 self.game.playerDeath()
                 break
             continue
         for enemy in self.game.enemies:
             if projectile.isColliding(enemy.getPosAndRadius()):
                 self.addExplosion(projectile)
                 enemy.decreaseHealth(projectile.getType())
                 if (enemy.health <= 0):
                     self.addProjlessExplosion(enemy.pos)
                     self.game.enemies.remove(enemy)
                     self.game.score += 2
     for trail in self.trails:
         if (trail.isFinished()):
             self.trails.remove(trail)
         else:
             trail.update()
     self.checkRightClick()
     self.checkSpacebar()
     for line in self.game.terrain.lines:
         if (self.game.player.isCollidingWithLine(line)
                 and not self.currentlyColliding[(self.game.player, line)]):
             self.game.player.collide(line)
             self.currentlyColliding[(self.game.player, line)] = True
         elif (self.game.player.isCollidingWithLineTipA(line)
               and not self.currentlyColliding[(self.game.player, line)]):
             self.game.player.collideTip(line.pA)
             self.currentlyColliding[(self.game.player, line)] = True
         elif (self.game.player.isCollidingWithLineTipB(line)
               and not self.currentlyColliding[(self.game.player, line)]):
             self.game.player.collideTip(line.pB)
             self.currentlyColliding[(self.game.player, line)] = True
         else:
             self.currentlyColliding[(self.game.player, line)] = False
     self.game.player.update(self.keyboard.forwards,
                             self.keyboard.backwards, self.keyboard.left,
                             self.keyboard.right, self.mousePos.getP())
예제 #9
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.game = Game()
예제 #10
0
 def addGame(self, newWeek, newHomeTeamRank, newAwayTeamRank, newDateTime):
     newGame = Game(newWeek, newHomeTeamRank, newAwayTeamRank, newDateTime)
     self.allGames.append(newGame)
예제 #11
0
            self.backwards = False
        elif (key == simplegui.KEY_MAP['a']):
            self.left = False
        elif (key == simplegui.KEY_MAP['d']):
            self.right = False
        elif (key == simplegui.KEY_MAP['space']):
            self.startselect = False
            self.space = False
            self.menu = False
        elif (key == simplegui.KEY_MAP['p']):
            self.p = not self.p
        elif (key == simplegui.KEY_MAP['c']):
            self.showControls = not self.showControls
            self.controlselect = False
        elif (key == simplegui.KEY_MAP['h']):
            self.showHighScore = not self.showHighScore
            self.highScoreSelect = False


game = Game(1200, 800)
i = Interaction(Keyboard(), game)
simplegui.pygame.mouse.set_visible(False)

# Frame initialisation
frame = simplegui.create_frame('Tanks', WIDTH, HEIGHT)
frame.set_mouseclick_handler(i.mouseClickHandler)
frame.set_draw_handler(i.drawHandler)
frame.set_keyup_handler(i.keyUpHandler)
frame.set_keydown_handler(i.keyDownHandler)
frame.start()
예제 #12
0
def main():
    print()
    print('遊戲開始')
    game = Game()
    game.Run()
예제 #13
0
def game_funct(kol_game, policy_estimator, higth_weel_g, width_weel_g, width_racet_g, max_point_weel_g, kol_point,
               min_len_between_point, list_rolout_score):
    list_images = []  # Список массивов Изображений серии игр
    list_muvies = []  # Список Действий Агента
    list_scores = []  # Список Результатов серии игр
    data_set = {}  # Дата Сет для нейросети

    rollout_score = 0

    # Сама Игра
    for num_game in range(kol_game):

        game_list_images = []
        game_list_muvies = []
        game_list_scores = []

        episode_list_images = []
        episode_list_muvies = []
        episode_list_scores = []
        episode_list_game_count = []
        episode_list_str_count = []

        num_episode = 0
        len_episode = 0

        G = Game(higth_weel_g, width_weel_g, width_racet_g, max_point_weel_g, kol_point, min_len_between_point,
                 list_col_point=[0.5, 0.5])

        # Основной Цикл Игры
        done = False
        while done == False:

            # Запоминаем состояние награды на начало эпизода
            old_count_game = G.get_score()

            image = G.get_weel_state()

            # Блок выбора действия для Агента
            image_tensor = torch.Tensor(np.expand_dims([image], axis=0)).float()
            prediction = policy_estimator.predict(image_tensor)  # Предсказываем
            if policy_estimator.device_in == 'cpu':
                action = np.argmax(prediction.cpu().detach().numpy())  # Получаем решение, что делать 'cpu'
            else:
                action = torch.max(prediction.detach(), 1)[1].item()  # Получаем решение, что делать 'cuda'
            done = G.act_pg(action)  # выполняем действие

            episode_list_images.append(image)
            episode_list_muvies.append(action)  # Заносим в список действие агента в эпизоде
            episode_list_str_count.append(G.get_str_score())  # Заносим в список кол-во пойманных точек в эпизоде
            episode_list_game_count.append(G.get_score())  # Заносим в список кол-во счет игры на момент эпизода

            episode_list_scores.append(0)  # Добавляем нулевое значение в список наград эпизода
            len_episode += 1

            # Проверяем Изменеие Счета в Игре

            if old_count_game != G.get_score():
                # Формирование награды на конец эпизода
                new_count_game = G.get_score()

                # Заполнение списка наград за весь эпизод
                mas = np.zeros((len(episode_list_scores)))
                mas[:] = new_count_game - old_count_game
                mas[:] = discount_correct_rewards(mas[:])
                episode_list_scores = mas.tolist()  # присваиваем всем значения награды в эпизоде награду эпизода

                # Фиксируем списки эпизода в списке игры
                game_list_images.extend(episode_list_images)
                game_list_muvies.extend(episode_list_muvies)
                game_list_scores.extend(episode_list_scores)

                # Очищаем списки эпизода
                episode_list_images = []
                episode_list_muvies = []
                episode_list_scores = []
                episode_list_str_count = []
                episode_list_game_count = []

                len_episode = 0
                num_episode += 1

        # Оценка Серии результатов Игр
        rollout_score = rollout_score + G.get_score()

        list_images.extend(game_list_images)
        list_muvies.extend(game_list_muvies)
        list_scores.extend(game_list_scores)

    data_set_loc = {'image': np.array(list_images),
                    'muvie': np.array(list_muvies),
                    'score': np.array(list_scores)}

    data_set_out = copy.deepcopy(data_set_loc)

    # print('Результат серии = ', rollout_score)
    # print('Кол-во примеров = ', len(list_images))
    list_rolout_score.append(rollout_score)

    data_set_loc.clear()  # Словарь с ДатаСетом
    list_images.clear()  # Список массивов Изображений серии игр
    list_muvies.clear()  # Список Действий Агента
    list_scores.clear()  # Список Результатов серии игр

    return data_set_out['image'], data_set_out['muvie'], data_set_out['score']
예제 #14
0
def main():
    my_game = Game()
    my_game.start()
예제 #15
0
if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Tak client')
    parser.add_argument('ip', metavar='0.0.0.0', type=str, help='Server IP')
    parser.add_argument('port', metavar='10000', type=int, help='Server port')
    parser.add_argument('exe',
                        metavar='run.sh',
                        type=str,
                        help='Your executable')
    parser.add_argument('-n',
                        dest='n',
                        metavar='N',
                        type=int,
                        default=5,
                        help='Tak board size')
    parser.add_argument('-mode',
                        dest='mode',
                        type=str,
                        default='GUI',
                        help='How to render')
    args = parser.parse_args()
    game = Game(args.n, args.mode)
    if args.mode != 'GUI':
        game_loop(game, args)
    else:
        from threading import Thread
        Th = Thread(target=lambda: game_loop(game, args))
        Th.start()
        game.init_display()
        game.display.mainloop()
예제 #16
0
from StartFrame import StartFrame
from Game import Game
import logging

logging.getLogger().setLevel(logging.INFO)
logging.info("Starting main script...")

#create game window
window = Tk()
# Set full screen
window.attributes('-fullscreen', True)
window.configure(bg='black', cursor='none')
#set title
window.title("BATTLESHIP: PI EDITION")

# Create game object
game = Game(window)

try:
    # Start main loop
    window.mainloop()
except KeyboardInterrupt:
    game.exitFlag = True
    game.nethandler.exitFlag = True
    game.gpioHandler.exitFlag = True
    game.nethandler.isock.close()
    game.nethandler.osock.close()
    if game.nethandler.machineType == 'host':
        game.nethandler.oconnection.close()
        game.nethandler.iconnection.close()
예제 #17
0
import numpy as np
from Board import GameBoard, BoardStates
from Player import AI
from Game import Game
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
from matplotlib import colors
from tkinter import *
from GameDisplay import GameDisplay


if __name__ == "__main__":
    player_one = AI()
    player_two = AI()
    game = Game(player_one, player_two)

    root = Tk()
    game_display = GameDisplay(game, root)
    root.mainloop()
예제 #18
0
# chargement du fond de fenètre
# redimensionnement du fond de la fenètre
background = pygame.image.load("Image/space_bg.gif")
background = pygame.transform.scale(background, (1080, 720))

# chargement du premier monstre
image = pygame.image.load("Image/monstre1.png")

# chargement de la bande blanche
# redimensionnement de la bande blanche
grande_bande_haut = pygame.image.load("Image/bande blanche.png")
grande_bande_haut = pygame.transform.scale(grande_bande_haut, (1080, 10))

# chargement du jeu
game = Game(image)

# initialisation du score
score = 0

# initialisation de la variable boucle du jeu
running = True

# boucle du jeu
while running:
    # print(game.pressed, game.player.all_projectile)
    # gamediplay.fill((0, 0, 0, 0))
    # afficher le fond de la fenètre
    gamediplay.blit(background, (0, 0))

    # initialisation du nombre maximum de projectile
예제 #19
0
    rewardFunction = lambda x: math.sqrt(x) if x >= 0 else 0
    LearningPlayer.init("NNs/trained_DuelNetwork",
                        DuelNetwork,
                        savePath="NNs/learned_DuelNetwork",
                        initialPoints=points,
                        decisionFunction=boltzmannInstance(.1),
                        rewardFunction=rewardFunction)


players = []

# players.append(DataPlayer(UserPlayer(), name="player1"))
# players.append(DataPlayer(SocketPlayer(50000), name="player2"))

# players.append(UserPlayer())
# players.append(NNPlayer("NNs/learned_NN_MSE"))

path = "NNs/learned_DuelNetwork"
players.append(VisualPlayer(NNPlayer(path, DuelNetwork)))
numOpponents = 2
for _ in range(numOpponents):
    players.append(NNPlayer(path, DuelNetwork))

# initLearningPlayer()
# numPlayers = 16
# for _ in range(numPlayers):
#     players.append(LearningPlayer())

print("starting game")
game = Game(100, players, timerDelay=0)
game.run()
예제 #20
0
 def handle_gamestart(self, gameName, season=None):
     if self.menu: self.menu.hide()
     if self.loadmenu: self.loadmenu.hide()
     if self.game: self.game.deleteLater()
     self.game = Game(self, gameName, season)
예제 #21
0
from Game import Game

new_game = Game()
new_game.start()
예제 #22
0
 def initialize_game():
     level_id = world.level_ids[min(level_i, len(world.level_ids))]
     world_id = worlds[min(world_i, len(worlds))]
     return Game(world.levels[level_i], f"{world_id}-{level_id}", True,
                 world.solutions[level_i])
예제 #23
0
 def update_map(self, state):
     self.game = Game(state)
예제 #24
0
from Board import Board
from Game import Game

if __name__ == '__main__':
    _game: Game = Game()
    _game.start()
예제 #25
0
    def __init__(self, sound, generate_window, card1=None, card2=None):
        self.sound = sound

        self.game = Game(self.sound)

        self.game.player1 = Player(None, [0, 2], [0, 0], [0, 4], [0, 1],
                                   [0, 3])
        self.game.player2 = Player(None, [4, 2], [4, 0], [4, 4], [4, 1],
                                   [4, 3])

        self.sound = sound
        self.score = 0

        self.generate_window = generate_window

        self.game.player1.goal = card1
        self.game.player2.goal = card2

        #self.game.player1.goal = generate_pos()
        #self.game.player2.goal = generate_pos()

        print("player1.goal = " + str(self.game.player1.goal))
        print("player2.goal = " + str(self.game.player2.goal))

        print(self.game.to_GUI())

        com_num = self.game.same_cards()
        # ("Number of common cards", "You have " + str(com_num) + " cards in common")
        if [2, 2] in self.game.player1.goal:
            color = 'dodger blue'
        else:
            color = 'white'
        entry = Label(self.generate_window,
                      width="20",
                      height="9",
                      text="You have " + str(com_num) +
                      "\n positions in common",
                      bg=color)
        entry.grid(row=2, column=2)
        self.generate_window.update()

        self.sound.com(com_num)
        time.sleep(2)

        self.generate_window.geometry("+0+100")

        super(WindowGameAI, self).__init__()
        self.geometry("+800+100")

        labels = []
        for r in range(5):
            row = []
            for i in range(5):
                if (r + i) % 2 == 0:
                    color = 'white'
                else:
                    color = 'black'
                entry = Label(self, width="20", height="9", bg=color)
                entry.grid(row=r, column=i)
                row.append(entry)
            labels.append(row)

        self.possible_clicks = []

        self.img_player1_captain = ImageTk.PhotoImage(
            image=Image.open('images and sounds\\image1.png'),
            master=self)  # PIL solution
        self.img_player1_pilote1 = ImageTk.PhotoImage(
            image=Image.open('images and sounds\\image2.png'),
            master=self)  # PIL solution
        self.img_player1_pyramid1 = ImageTk.PhotoImage(
            image=Image.open('images and sounds\\image0.png'),
            master=self)  # PIL solution
        self.img_player2_pyramid1 = ImageTk.PhotoImage(
            image=Image.open('images and sounds\\image3.png'),
            master=self)  # PIL solution
        self.img_player2_pilot1 = ImageTk.PhotoImage(
            image=Image.open('images and sounds\\image4.png'),
            master=self)  # PIL solution
        self.img_player2_captain = ImageTk.PhotoImage(
            image=Image.open('images and sounds\\image5.png'),
            master=self)  # PIL solution

        self.player1_captain = Button(self,
                                      width="144",
                                      height="139",
                                      bg="dodger blue",
                                      text="player1_capitain",
                                      command=self.clicking_player1_captain,
                                      image=self.img_player1_captain)
        self.player1_captain.image = self.img_player1_captain

        self.player1_pyramid1 = Button(self,
                                       width="144",
                                       height="139",
                                       bg="dodger blue",
                                       text="player1_pyramid1",
                                       command=self.clicking_player1_pyramid1,
                                       image=self.img_player1_pyramid1)
        self.player1_pyramid1.image = self.img_player1_pyramid1

        self.player1_pyramid2 = Button(self,
                                       width="144",
                                       height="139",
                                       bg="dodger blue",
                                       text="player1_pyramid2",
                                       command=self.clicking_player1_pyramid2,
                                       image=self.img_player1_pyramid1)
        self.player1_pyramid2.image = self.img_player1_pyramid1

        self.player1_pilot1 = Button(self,
                                     width="144",
                                     height="139",
                                     bg="dodger blue",
                                     text="player1_pilot1",
                                     command=self.clicking_player1_pilot1,
                                     image=self.img_player1_pilote1)
        self.player1_pilot1.image = self.img_player1_pilote1

        self.player1_pilot2 = Button(self,
                                     width="144",
                                     height="139",
                                     bg="dodger blue",
                                     text="player1_pilot2",
                                     command=self.clicking_player1_pilot2,
                                     image=self.img_player1_pilote1)
        self.player1_pilot2.image = self.img_player1_pilote1

        self.player2_captain = Button(self,
                                      width="144",
                                      height="139",
                                      bg="red",
                                      text="player2_capitain",
                                      command=self.clicking_player2_captain,
                                      image=self.img_player2_captain)
        self.player2_captain.image = self.img_player2_captain

        self.player2_pyramid1 = Button(self,
                                       width="144",
                                       height="139",
                                       bg="red",
                                       text="player2_pyramid1",
                                       command=self.clicking_player2_pyramid1,
                                       image=self.img_player2_pyramid1)
        self.player2_pyramid1.image = self.img_player2_pyramid1

        self.player2_pyramid2 = Button(self,
                                       width="144",
                                       height="139",
                                       bg="red",
                                       text="player2_pyramid2",
                                       command=self.clicking_player2_pyramid2,
                                       image=self.img_player2_pyramid1)
        self.player2_pyramid2.image = self.img_player2_pyramid1

        self.player2_pilot1 = Button(self,
                                     width="144",
                                     height="139",
                                     bg="red",
                                     text="player2_pilot1",
                                     command=self.clicking_player2_pilot1,
                                     image=self.img_player2_pilot1)
        self.player2_pilot1.image = self.img_player2_pilot1

        self.player2_pilot2 = Button(self,
                                     width="144",
                                     height="139",
                                     bg="red",
                                     text="player2_pilot2",
                                     command=self.clicking_player2_pilot2,
                                     image=self.img_player2_pilot1)
        self.player2_pilot2.image = self.img_player2_pilot1

        self.player1_pions = [
            self.player1_captain, self.player1_pyramid1, self.player1_pyramid2,
            self.player1_pilot2, self.player1_pilot1
        ]
        self.player2_pions = [
            self.player2_captain, self.player2_pyramid1, self.player2_pyramid2,
            self.player2_pilot2, self.player2_pilot1
        ]

        self.update_GUI()

        self.AI = SimpleAI(self.game)

        if self.game.turn == 1:
            self.sound.play_blue_first()
        else:
            self.sound.play_red_first()
            self.AI.make_a_move()
            self.update_GUI()

        self.protocol("WM_DELETE_WINDOW", self.on_closing_game)
예제 #26
0
def simulate(strat=None,
             recomb=0.3,
             pop_size=10,
             mut=0.7,
             bound_rad=3,
             num_weights=6,
             iters=200,
             plotDataFile="PlotData.txt",
             FlappyDataFile='FlappyData.txt',
             dataFolder='../data/'):

    plotDataFile =  dataFolder + plotDataFile + \
                   "rec" + str(recomb) + \
                   "pop" + str(pop_size) + \
                   "mut" + str(mut) + \
                   "brad" + str(bound_rad) + \
                   "wnum" + str(num_weights) + \
                   "strat" + str(strat)

    FlappyDataFile = dataFolder + FlappyDataFile

    genetic_params = {
        "recombination": recomb,  #0.3,
        "pop_size": pop_size,  #23,
        "mutation": mut,  #0.7,  # try 0.2
        "bound_rad": bound_rad  #3
    }

    bounds = [(-genetic_params["bound_rad"], genetic_params["bound_rad"])
              ] * num_weights

    game = Game(MANUAL_PLAY=False,
                AI_PLAY=True,
                plotDataFile=plotDataFile,
                flappyDataFile=FlappyDataFile)

    with open(FlappyDataFile, 'a') as file:
        output = "---------- Simulation number " + str(1) + \
                 " with bound radius: " + str(genetic_params["bound_rad"]) + \
                 " recombination: " + str(genetic_params["recombination"]) + \
                 " pop size: " + str(genetic_params["pop_size"]) + \
                 " mutation: " + str(genetic_params["mutation"]) + \
                 " gap size: " + str(PIPEGAPSIZE) + \
                 " num weights: " + str(num_weights) + \
                 " strat: " + str(strat) + \
                 " ----------\n"
        file.write(output)

    result = differential_evolution(
        game.main,
        bounds,
        maxiter=iters,
        disp=True,
        recombination=genetic_params["recombination"],
        popsize=genetic_params["pop_size"],
        mutation=genetic_params["mutation"],
        strategy=strat)

    print(result)
    print("Done with de")
    return result, plotDataFile
예제 #27
0
def main():
    Game(5, 5)
예제 #28
0
파일: __main__.py 프로젝트: FloNCLS/Python
from Game import Game

if __name__ == "__main__":
    g = Game()
    g.set_game()
예제 #29
0
 def setUp(self):
     self.game = Game(1)
예제 #30
0
# Script main permettant de lancer le jeu.

from Game import Game
from Player import *
import pickle

NB_STICKS = 15

cpu1 = CPUPlayer("CPU_1", "hard", NB_STICKS)
cpu2 = CPUPlayer("CPU_2", "hard", NB_STICKS)
for i in range(1, 20000):
    Game(NB_STICKS).start(cpu1, cpu2, False)
    

with open("data",'wb') as output: pickle.dump(cpu1.getNeuronNetwork(), output, pickle.HIGHEST_PROTOCOL)