Beispiel #1
0
def main():
    # Display the main menu and have player pick a class type
    classType = int(main_menu.display())
    
    # Start the game
    import game
    game.play(classType)
Beispiel #2
0
def levelSaveMenu():
    """
    Fait fonctionner le menu de sélection d'une sauvegarde.
    """
    goInBlack()
    levels = IO.getLevels("save")
    levelSelected = 0
    level = IO.loadSave(levels[0])
    game.initSaveLevel(level)
    moveRender(levels, levelSelected, IO.loadSave)

    while not evenement.event["game"] == 'return':
        evenement.compute()
        ui.logic(evenement.event["tk"])
        if evenement.event["game"] == "right":
            levelSelected = move(levelSelected, levels, 1, IO.loadSave)
        elif evenement.event["game"] == "left":
            levelSelected = move(levelSelected, levels, -1, IO.loadSave)
        elif evenement.event["game"] == "play":
            goInBlack()
            game.play(levels[levelSelected], "l")
            backInBlack(game.initSaveLevel, [levels[levelSelected]])
            moveRender(levels, levelSelected, IO.loadSave)
        game.updateTime()
        animation.update()
        ui.render(game.getFps())
        mise_a_jour()

    backInBlack(game.initPlayMenu)
Beispiel #3
0
def main():
    colorama.init()

    n = []

    print("Loading networks... ", end="\t")
    n = nnet.load("data/data0.txt")
    printOK()

    while True:
        s = getXO()
        board = []
        for i in range(A_SIDE):
            board.append([])
            for j in range(A_SIDE):
                board[i].append(' ')
        if s == 'x' or s == 'X':
            a = game.play('x', board, n)
            n_board = a[0]
            is_win = a[1]
        else:
            a = game.play('o', board, n)
            n_board = a[0]
            is_win = a[1]
        if is_win == -1:
            cprint('You won!\n', 'green')
        elif is_win == 0:
            print('Draw!')
        else:
            cprint('AI won!', 'red')
        v = input("Do you want to try again? (y/n) ")
        if v == "n" or v == "N" or v == "no" or v == "No" or v == "nO" or v == "NO":
            print("Goodbye!")
            break
Beispiel #4
0
def flee(character):
    """
    Attempt to escape from combat.

    When the character attempts to escape, he will either be successful and leave the fight, or he will fail and take
    damage.
    :param character: A dictionary representing a character.
    :precondition: A proper character dictionary is inputted as a param.
    :postcondition: The character will properly attempt to escape.
    """
    character["in_combat"] = False
    roll = game.roll_die(1, 10)
    if roll == 1:
        damage = game.roll_die(1, 4)
        character["HP"][0] -= damage
        print("You were late to a pop-quiz and got a 0! Lose " + str(damage) +
              " sanity.")
    else:
        print(
            "You managed to falsify a doctors note and got excused from class!"
        )
    if game.is_alive(character):
        game.play(character)
    else:
        print("Game over!  You did not manage to survive school.")
Beispiel #5
0
def levelSelectionMenu():
    """
    Fait fonctionner le menu de sélection d'un niveau enregistré.
    """
    goInBlack()
    levels = IO.getLevels("level")
    levelSelected = 0
    level = IO.loadLevel(level=levels[0])
    game.initSelectionLevel(level)
    moveRender(levels, levelSelected, IO.loadLevel)
    while not evenement.event["game"] == 'return':
        evenement.compute()
        ui.logic(evenement.event["tk"])
        if evenement.event["game"] == "right":
            levelSelected = move(levelSelected, levels, 1, IO.loadLevel)
        elif evenement.event["game"] == "left":
            levelSelected = move(levelSelected, levels, -1, IO.loadLevel)
        elif evenement.event["game"] == "play":
            goInBlack()
            game.play(levels[levelSelected], "s")
            backInBlack(game.initSelectionLevel, [levels[levelSelected]])
            moveRender(levels, levelSelected, IO.loadLevel)
        elif evenement.event["game"] == "edit":
            goInBlack()
            editor.editor(levels[levelSelected])
            backInBlack(game.initSelectionLevel, [levels[levelSelected]])
            moveRender(levels, levelSelected, IO.loadLevel)
        game.updateTime()
        animation.update()
        ui.render(game.getFps())
        mise_a_jour()
    backInBlack(game.initPlayMenu)
Beispiel #6
0
    def show(self):
        print(f'Load a Game:\n ========= \n\n')
        for i, a in enumerate(self.actions, 1):
            print(f'{i}) {a}')  # list all the saves

        print('Q) Quit to Title\n')

        self.action = -1

        def get_action():
            self.action = input('Choose a save: ')
            if self.action.lower() == 'q':
                TitleScreen()
            try:
                self.action = int(self.action)
            except:
                print("That isn't a valid number!")
                get_action()
            if int(self.action) > len(self.actions) or int(self.action) < 1:
                print("That isn't a valid save!")
                get_action()

        get_action()
        import game
        clear()
        game.play(self.actions[self.action - 1],
                  l=True)  # continue playing on that save
        TitleScreen()
Beispiel #7
0
def get_starting_answers(ans, player1_wins, player2_wins):
    if ans == "Q":
        print"Goodbye"
        exit(1)
    elif ans == "P":
        game.play(player1_wins, player2_wins)
    elif ans == "L":
        f = game.load_save()
        if f == 1:
            print "no save data. Hit P for new game, or Q to quit"
            ans1 = raw_input("Please enter correct answer -> ")
            ans1 = ans1.upper()
            get_starting_answers(ans1, player1_wins, player2_wins)
        else:
            count = int(f[0])
            play1 = f[1]
            play2 = f[2]
            player1_wins = int(f[3])
            player2_wins = int(f[4])
            board1 = f[6:]
            game.play_next_move(board1, count, play1, play2, player1_wins, player2_wins)
    else:
        print "Invalid Input, Must Choose Q, P, L"
        ans1 = raw_input("Please enter correct answer -> ")
        ans1 = ans1.upper()
        get_starting_answers(ans1, player1_wins, player2_wins)
Beispiel #8
0
def test_immediate_exit():
    input_values = ['30', '50', '42', 'x']
    output = []

    def mock_input(s):
        output.append(s)
        return input_values.pop(0)

    game.input = mock_input
    game.print = lambda s: output.append(s)
    random.randrange = lambda a, b: 42

    game.play()

    assert output == [
        '\nWelcome to another Number Guessing game',
        'Please enter your guess [x|s|d|m|n]: ',
        '30',
        'Your guess is too low',
        'Please enter your guess [x|s|d|m|n]: ',
        '50',
        'Your guess is too high',
        'Please enter your guess [x|s|d|m|n]: ',
        '42',
        'Hit!',
        '\nWelcome to another Number Guessing game',
        'Please enter your guess [x|s|d|m|n]: ',
        'x',
        'Sad to see you leave early',
    ]
Beispiel #9
0
def test_immediate_exit(monkeypatch, capsys):
    input_values = '\n'.join(['30', '50', '42', 'x'])
    monkeypatch.setattr(sys, 'stdin', io.StringIO(input_values))

    monkeypatch.setattr(random, 'randrange', lambda a, b: 42)

    game.play()
    out, err = capsys.readouterr()

    assert out == '''
Beispiel #10
0
def test_2():
    '''
       Game between human player and minmax player
    '''
    hg = hexgame.Hexgame(5)
    ph1 = game.Human_player(hg.clone())
    ph1.set_color(-1)
    ph2 = game.Minmax_player(hg.clone(),hexgame.hexgame_eval)
    ph2.set_color(+1)

    game.play(hg, ph1, ph2, verbose = 1)
Beispiel #11
0
def test_1():
    '''
       Game between two human players
    '''
    hg = hexgame.Hexgame(3)
    ph1 = game.Human_player(hg.clone())
    ph1.set_color(-1)
    ph2 = game.Human_player(hg.clone())
    ph2.set_color(+1)
    hg.print_player_turn()
    game.play(hg, ph1, ph2, verbose=1)
Beispiel #12
0
def test_2():
    '''
       Game between human player and minmax player
    '''
    hg = hexgame.Hexgame(5)
    ph1 = game.Human_player(hg.clone())
    ph1.set_color(-1)
    ph2 = game.Minmax_player(hg.clone(), hexgame.hexgame_eval)
    ph2.set_color(+1)

    game.play(hg, ph1, ph2, verbose=1)
Beispiel #13
0
def test_H_H():
    '''
       Game between two human players
    '''
    hg = hexgame.Hexgame(11)
    p1 = game.Human_hex_player(hg.clone())
    p1.set_color(-1)
    p2 = game.Human_hex_player(hg.clone())
    p2.set_color(+1)
    hg.print_player_turn()
    game.play(hg, p1, p2, verbose=1)
Beispiel #14
0
def test_H_A():
    '''
       Game between human player and alphabeta player
    '''
    hg = hexgame.Hexgame(5)
    p1 = game.Human_hex_player(hg.clone())
    p1.set_color(-1)
    p2 = game.Alphabeta_player(hg.clone(), hexgame.hexgame_eval)
    p2.set_color(+1)

    game.play(hg, p1, p2, verbose=1)
Beispiel #15
0
def test_H_A():
    '''
       Game between human player and alphabeta player
    '''
    hg = hexgame.Hexgame(5)
    p1 = game.Human_hex_player(hg.clone())
    p1.set_color(-1)
    p2 = game.Alphabeta_player(hg.clone(),hexgame.hexgame_eval)    
    p2.set_color(+1)

    game.play(hg, p1, p2, verbose = 1)
Beispiel #16
0
def rgetxy(event):
    try:
        game.right = alpha2[int(event.x / 80) - 1] + str(9 - int(event.y / 80))
    except:
        print('error')
    game.play(guiw)
    for i in guiw.selec_poss_seen:
        guiw.canvas.delete(i)
    if game.winner != None:
        print('the winner is {}'.format(game.winner))
        input()
Beispiel #17
0
def test_H_H():
    '''
       Game between two human players
    '''
    hg = hexgame.Hexgame(11)
    p1 = game.Human_hex_player(hg.clone())
    p1.set_color(-1)
    p2 = game.Human_hex_player(hg.clone())    
    p2.set_color(+1)
    hg.print_player_turn()    
    game.play(hg, p1, p2, verbose = 1)
Beispiel #18
0
def test_1():
    '''
       Game between two human players
    '''
    hg = hexgame.Hexgame(3)
    ph1 = game.Human_player(hg.clone())
    ph1.set_color(-1)
    ph2 = game.Human_player(hg.clone())    
    ph2.set_color(+1)
    hg.print_player_turn()
    game.play(hg, ph1, ph2, verbose = 1)
Beispiel #19
0
def test_1():
    '''
       Game between two human players
    '''
    qg = quantum_game.Quantumgame()
    qg.randomize_board()
    print(qg.legal_moves(True))
    ph1 = game.Human_quantum_player(qg.clone())
    ph1.set_color(-1)
    ph2 = game.Human_quantum_player(qg.clone())    
    ph2.set_color(+1)
    qg.print_player_turn()    
    game.play(qg, ph1, ph2, verbose = 1)
Beispiel #20
0
def test_2():
    '''
       Game between human player and minmax player
    '''
    qg = quantum_game.Quantumgame()
    random.seed(a=22)
    qg.randomize_board()
    p1 = game.Human_quantum_player(qg.clone())
    p1.set_color(+1)
    p2 = mcts.MCTS_player(qg.clone(),iters=1000)    
    p2.set_color(-1)

    game.play(qg, p1, p2, verbose = 1)
Beispiel #21
0
def test_debug():
    '''
       debug Game between human player and minmax player
    '''
    hg = hexgame.Hexgame(3)
    hg.set_board([1, 0, 0, -1, 1, -1, 0, 0, -1])

    p1 = game.Human_hex_player(hg.clone())
    p1.set_color(-1)
    p2 = game.Minmax_player(hg.clone(), hexgame.hexgame_eval)
    p2.set_color(+1)

    game.play(hg, p1, p2, verbose=1)
Beispiel #22
0
def test_1():
    '''
       Game between two human players
    '''
    qg = quantum_game.Quantumgame()
    qg.randomize_board()
    print(qg.legal_moves(True))
    ph1 = game.Human_quantum_player(qg.clone())
    ph1.set_color(-1)
    ph2 = game.Human_quantum_player(qg.clone())
    ph2.set_color(+1)
    qg.print_player_turn()
    game.play(qg, ph1, ph2, verbose=1)
Beispiel #23
0
def test_2():
    '''
       Game between human player and minmax player
    '''
    qg = quantum_game.Quantumgame()
    random.seed(a=22)
    qg.randomize_board()
    p1 = game.Human_quantum_player(qg.clone())
    p1.set_color(+1)
    p2 = mcts.MCTS_player(qg.clone(), iters=1000)
    p2.set_color(-1)

    game.play(qg, p1, p2, verbose=1)
Beispiel #24
0
def test_immediate_exit(monkeypatch, capsys):
    monkeypatch.setattr(sys, 'stdin', io.StringIO('x'))

    game.play()
    out, err = capsys.readouterr()
    assert err == ''

    expected = '''
Welcome to another Number Guessing game
Please enter your guess [x|s|d|m|n]: x
Sad to see you leave early
'''
    assert out == expected
Beispiel #25
0
def test_3():
    '''
       debug Game between human player and minmax player
    '''
    hg = hexgame.Hexgame(3)
    hg.set_board([1,0,0,-1,1,-1,0,0,-1])
 
    ph1 = game.Human_player(hg.clone())
    ph1.set_color(-1)
    ph2 = game.Minmax_player(hg.clone(),hexgame.hexgame_eval)    
    ph2.set_color(+1)
    
  
    game.play(hg, ph1, ph2, verbose = 1)
Beispiel #26
0
def main():

    pygame.display.set_caption('Asteroids')
    var = start_screen.show_start_screen()
    
    if var:
        game.play()
        
    while True:
        for event in pygame.event.get(): # event handling loop
            if event.type == QUIT:
                terminate()
            elif event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    terminate()
Beispiel #27
0
def main():

    pygame.display.set_caption('Asteroids')
    var = start_screen.show_start_screen()
    
    if var:
        game.play()
        
    while True:
        for event in pygame.event.get(): # event handling loop
            if event.type == pygame.QUIT:
                func.terminate()
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    func.terminate()
Beispiel #28
0
def playGame(player, size, depth):
    loop = True
    while (loop):
        play(player, size[0], size[1], depth)
        user_input = input("That was fun {0}! ".format(player) +
                           "Do you want to play again?\n" + "(Y/n): ")
        if (user_input.lower() == 'y' or user_input.lower() == 'yes'):
            print("Let's play!")
            loop = True
        elif (user_input.lower() == 'n' or user_input.lower() == 'no'):
            loop = False
        else:
            print("I'm sorry, I don't understand '{0}'.".format(user_input))

    print("Thanks for playing with me, {0}. See you later!".format(player))
Beispiel #29
0
def experiment(n, p1, p2, p1name='p1', p2name='p2'):
    wins = {-1: 0, 1: 0}
    moves = {-1: {'len': 0, 'sum': 0}, 1: {'len': 0, 'sum': 0}}
    for i in range(1, n + 1):
        print('game {} of {}'.format(i, n))

        qg = quantum_game.Quantumgame()
        qg.randomize_board()

        p1.set_game(qg.clone())
        p2.set_game(qg.clone())

        p1.set_color(-1)
        p2.set_color(1)

        last_turn, legal_move_hist = game.play(qg, p1, p2, verbose=0)

        wins[-qg.turn] += 1
        moves[-1]['sum'] += sum(legal_move_hist[-1])
        moves[-1]['len'] += len(legal_move_hist[-1])
        moves[1]['sum'] += sum(legal_move_hist[1])
        moves[1]['len'] += len(legal_move_hist[1])

    print(moves[-1]['sum'] / moves[-1]['len'])
    print(moves[1]['sum'] / moves[1]['len'])
    print('wins: {}={}, {}={}'.format(p1name, wins[-1], p2name, wins[1]))
Beispiel #30
0
def main():
    assert len(argv) == 5
    map_size = int(argv[1])
    tanks_per_team = int(argv[2])
    team_file_name = argv[3]
    shoot_range = int(argv[4])
    # team_commands = None
    with open(team_file_name) as f:
        team_commands = f.readlines()

    map = Map(map_size, shoot_range)
    for team,command in enumerate(team_commands):
        for i in range(0, tanks_per_team):
            map.add_tank(Tank(team + 1, command, shoot_range))

    play(map)
Beispiel #31
0
def input_num(num):
    player = game.load()
    result = game.play(num)
    if player['win'] + 1 < 3 and player['life'] - 1 > 0:
        if result == 'win':
            result = '이겼습니다!'
            show = '이겼습니다. 승리 : {} 기회 : {}'.format(player['win'] + 1,
                                                   player['life'])
        elif result == 'drawwin':
            result = '강화된 {}로 이겼습니다!'.format(player['powerup'])
            show = '강화된 {}로 이겼습니다! 승리 : {} 기회 : {}'.format(
                player['powerup'], player['win'] + 1, player['life'])
        elif result == 'draw':
            result = '비겼습니다'
            show = '비겼습니다. 승리 : {} 기회 : {}'.format(player['win'],
                                                   player['life'])
        else:
            result = '졌습니다.'
            show = '졌습니다.승리 : {} 기회 : {}'.format(player['win'],
                                                 player['life'] - 1)

        return render_template('play.html', data=result, info=show)

    elif player['win'] + 1 >= 3:
        result = '3번 승리로 게임에서 이겼습니다.'
        return render_template('game_result.html', data=result)
    else:
        result = '3번 패배로 게임에서 졌습니다.'
        return render_template('game_result.html', data=result)
Beispiel #32
0
def select_level(win):
    title_lines = [
        "████████  ████████  ██        ████████  ████████  ████████    ██        ████████ ██    ██  ████████  ██      ",
        "██        ██        ██        ██        ██           ██       ██        ██       ██    ██  ██        ██      ",
        "████████  ██████    ██        ██████    ██           ██       ██        ██████   ██    ██  ██████    ██      ",
        "      ██  ██        ██        ██        ██           ██       ██        ██       ██    ██  ██        ██      ",
        "████████  ████████  ████████  ████████  ████████     ██       ████████  ████████   ████    ████████  ████████"
    ]
    menu = ["Level " + l for l in sorted(os.listdir("levels")) if l.isdigit()
            ] + ["Main menu"]
    selection = get_menu_selection(win, title_lines, menu)
    if selection == len(menu) - 1:
        return
    else:
        level_number = selection + 1
        game.play(win, level_number)
Beispiel #33
0
def menu():
    choice = input(CHOICE).lower()
    while choice != "q":
        if choice == "i":
            view_information()

        elif choice == "r":
            view_rules()

        elif choice == "p":
            play()

        else:
            print("Something went wrong, you made a wrong choice")

        choice = input(CHOICE).lower()
Beispiel #34
0
def experiment(n, p1, p2, p1name='p1', p2name='p2'):
    wins = {-1: 0, 1: 0}
    moves = {-1: {'len': 0, 'sum': 0}, 1: {'len': 0, 'sum': 0}}
    for i in range(1, n + 1):
        print('game {} of {}'.format(i, n))

        qg = quantum_game.Quantumgame()
        qg.randomize_board()

        p1.set_game(qg.clone())
        p2.set_game(qg.clone())

        p1.set_color(-1)
        p2.set_color(1)

        last_turn, legal_move_hist = game.play(qg, p1, p2, verbose=0)

        wins[-qg.turn] += 1
        moves[-1]['sum'] += sum(legal_move_hist[-1])
        moves[-1]['len'] += len(legal_move_hist[-1])
        moves[1]['sum'] += sum(legal_move_hist[1])
        moves[1]['len'] += len(legal_move_hist[1])

    print(moves[-1]['sum']/moves[-1]['len'])
    print(moves[1]['sum']/moves[1]['len'])
    print('wins: {}={}, {}={}'.format(p1name, wins[-1], p2name, wins[1]))
    def test_player_2_wins_pair_of_eights(self):
        player_1_hand, player_2_hand = parse_hands(
            "5H 5C 6S 7S KD 2C 3S 8S 8D TD")

        player_1_result, player_2_result = play(player_1_hand, player_2_hand)

        self.assertEqual(0, player_1_result)
        self.assertEqual(1, player_2_result)
    def test_player_1_wins_royal_flush(self):
        player_1_hand, player_2_hand = parse_hands(
            "TH JH QH KH AH QC TC 6D 7C KS")

        player_1_result, player_2_result = play(player_1_hand, player_2_hand)

        self.assertEqual(1, player_1_result)
        self.assertEqual(0, player_2_result)
    def test_player_1_wins_highest_card_ace(self):
        player_1_hand, player_2_hand = parse_hands(
            "5D 8C 9S JS AC 2C 5C 7D 8S QH")

        player_1_result, player_2_result = play(player_1_hand, player_2_hand)

        self.assertEqual(1, player_1_result)
        self.assertEqual(0, player_2_result)
    def test_player_1_wins_full_house(self):
        player_1_hand, player_2_hand = parse_hands(
            "2H 2D 4C 4D 4S 3C 3D 3S 9S 9D")

        player_1_result, player_2_result = play(player_1_hand, player_2_hand)

        self.assertEqual(1, player_1_result)
        self.assertEqual(0, player_2_result)
    def test_player_1_wins_highest_card_nine(self):
        player_1_hand, player_2_hand = parse_hands(
            "4D 6S 9H QH QC 3D 6D 7H QD QS")

        player_1_result, player_2_result = play(player_1_hand, player_2_hand)

        self.assertEqual(1, player_1_result)
        self.assertEqual(0, player_2_result)
def start_game(Name, game, check, is_New_Name):
    print('\n', Name, ' Welcome to the guess the four-lettered word game!\n')
    print('------------------------------------------------------------\n')
    con = 'y'  # var for check the to continue the game
    print(
        'The rules are simple...\nYou must a guess a four letter word and you have 15 chances to do so :P'
    )
    print('\n Sounds easy right? Lets get on with it!\n')

    def getwords():
        fobj = open(r"Randwords.txt", "r+")
        get = fobj.read().splitlines()
        fobj.close()
        return get

    get = getwords()
    game.play(con, get, Name, check, is_New_Name)
    def test_player_2_wins_flush(self):
        player_1_hand, player_2_hand = parse_hands(
            "2D 9C AS AH AC 3D 6D 7D TD QD")

        player_1_result, player_2_result = play(player_1_hand, player_2_hand)

        self.assertEqual(0, player_1_result)
        self.assertEqual(1, player_2_result)
    def test_player_2_wins_highest_card_jack(self):
        player_1_hand, player_2_hand = parse_hands(
            "6D 7C 5D 5H 3S 5C JC 2H 5S 3D")

        player_1_result, player_2_result = play(player_1_hand, player_2_hand)

        self.assertEqual(0, player_1_result)
        self.assertEqual(1, player_2_result)
Beispiel #43
0
 def start(self):
     """"Функция старта с заданными параметрами"""
     width = int(self.width.text())
     height = int(self.height.text())
     colors = int(self.colors.text())
     if colors > 8 or colors < 1:
         reply = QMessageBox.question(self, "Message", "Количество цветов от 1 до 8"\
                 + "\nВыйти?", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
         if reply == QMessageBox.Yes:
             exit(0)
         else:
             return
     if width*height > 1000 and colors == 1:
         reply = QMessageBox.question(self, "Message",\
                 "Плохое соотношение размера поля и количества цветов"\
                 + "\nВыйти?", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
         if reply == QMessageBox.Yes:
             exit(0)
         else:
             return
     if (width < 2 or height < 2) and colors != 1:
         reply = QMessageBox.question(self, "Message", \
                 "Наврятли вы выиграете с такими настройками"\
                 + "\nВыйти?", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
         if reply == QMessageBox.Yes:
             exit(0)
         else:
             return
     if width == 1 and colors == 1 and height == 1:
         reply = QMessageBox.question(self, "Message", "Нет ходов"\
                 + "\nВыйти?", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
         if reply == QMessageBox.Yes:
             exit(0)
         else:
             return
     if width > 100 and height > 100:
         reply = QMessageBox.question(self, "Message", "Большое поле"\
                 + "\nВыйти?", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
         if reply == QMessageBox.Yes:
             exit(0)
         else:
             return
     game.play(self, width, height, colors)
     self.setVisible(False)
Beispiel #44
0
        board = transpose(board)
        for i in range(len(board)):
            score += match(board[i])[1]
            reduce(board[i])
        mirror(board)
        for i in range(len(board)):
            reduce(board[i])
        mirror(board)
        board = transpose(board)

        if board != initialBoard:
            insert_new(board, 1, 2)

    return board, score   # Complete me


def origin(board):
    if len(board) == 0:
        return []
    return [list(board[0])] + origin(board[1:])


# This next bit of code initializes our GUI code with your functions
# `initialize`, `handle_key_press` and `should_continue` and starts
# the game.  The if test checks whether this file is being executed
# or just imported (e.g. for testing)
if __name__ == "__main__":
    game = game.Game(initialize, handle_key_press, should_continue)
    game.play()
Beispiel #45
0
def main():
    done = False
    while not done :
        done = game.play()
Beispiel #46
0
 def test_game_is_won_after_8_crow_then_20_baskets(self):
     game = Game(iter([Dice.CROW]*8 + [Dice.BASKET]*20))
     assert game.play() == Outcome.WIN
Beispiel #47
0
 def test_game_is_lost_after_19_baskets_then_9_crows(self):
     game = Game(iter([Dice.BASKET]*19 + [Dice.CROW]*9))
     assert game.play() == Outcome.LOST
Beispiel #48
0
 def test_game_is_won_after_20_baskets(self):
     game = Game(iter([Dice.BASKET]*20))
     assert game.play() == Outcome.WIN
Beispiel #49
0
 def test_game_is_lost_after_20_baskets(self):
     game = Game(iter([Dice.BASKET] + [Dice.CROW]*9))
     assert game.play() == Outcome.LOST
Beispiel #50
0
# Starting game loop
############################################################################
import human_input, game, random_strat, greedy_alg, naive_alg, time, datetime
solver_dict = {"human":human_input, "random":random_strat, "greedy":greedy_alg, "naive":naive_alg, "replay":None}
solver = input("Please select a solver from the following by typing its name\n{}\n".format(solver_dict.keys()))
if solver == "replay":
	score = game.replay(input("enter replay string:\n"))
elif solver in solver_dict:
	start = time.clock()
	score = game.play(solver_dict[solver].get_move)
	end = time.clock()
	elapsed = end - start
	# game.Result(score[2], start, elapsed, score[3], [solver])
print("Game Over! You score {} points, lasted {} moves and cleared {} lines!\nThe game lasted {}".format(score[2],score[0],score[1], str(datetime.timedelta(seconds=elapsed))))
Beispiel #51
0
def handle_main_menu():
    # default players
    players = [game.Player((0, 0), (1, 0), tcod.red,
                           controls=controls[0]),
               game.Player((-1, -1), (-1, 0),
                           tcod.cyan),  # cyan is used instead of blue for
               # legibility and brightness
               game.Player((-1, 0), (0, 1),
                           tcod.green),
               game.Player((0, -1), (0, -1),
                           tcod.yellow),
               ]

    conway_speed = CONWAY_SPEED
    map_width, map_height = SCREEN_SIZE
    max_fps = MAX_FPS

    while not tcod.console_is_window_closed():
        tcod.console_clear(0)
        tcod.console_set_foreground_color(0, tcod.white)
        tcod.console_print_center(0, SCREEN_WIDTH / 2, 2, tcod.BKGND_NONE,
                                  'Conway\'s Game of Tron')
        tcod.console_set_foreground_color(0, tcod.grey)
        tcod.console_print_center(0, SCREEN_WIDTH / 2, 3, tcod.BKGND_NONE,
                                  'by Spferical ([email protected])')
        tcod.console_print_center(0, SCREEN_WIDTH / 2, 4, tcod.BKGND_NONE,
                                  'Version ' + VERSION)
        tcod.console_set_foreground_color(0, tcod.white)
        tcod.console_print_left(0, 2, 6, tcod.BKGND_NONE,
                                '(a) Play')
        tcod.console_print_left(0, 2, 7, tcod.BKGND_NONE,
                                '(b) Exit')
        player_keys = ['c', 'd', 'e', 'f']
        y = 9
        x = 2
        playernum = -1
        for player in players:
            y += 1
            playernum += 1
            k = player_keys[playernum]
            if not player.dead:
                tcod.console_set_foreground_color(0, player.color)
            else:
                tcod.console_set_foreground_color(0, tcod.white)
            if not player.dead and player.controls:
                if player.controls == [tcod.KEY_UP, tcod.KEY_LEFT,
                                       tcod.KEY_DOWN, tcod.KEY_RIGHT]:
                    str_controls = '[arrow keys]'
                else:
                    str_controls = str(player.controls)
                text = '(' + k + ') ' + str(playernum +
                                            1) + ' Player ' + str_controls
            elif not player.dead and not player.controls:
                text = '(' + k + ') ' + str(playernum + 1) + ' CPU'
            else:
                text = '(' + k + ') ' + str(playernum + 1) + ' Not Playing'
            tcod.console_print_left(0, x, y, tcod.BKGND_NONE, text)

        tcod.console_set_foreground_color(0, tcod.white)
        tcod.console_print_left(0, 2, 15, tcod.BKGND_NONE,
                                '(g) Conway speed: ' + str(conway_speed))
        tcod.console_print_left(0, 2, 17, tcod.BKGND_NONE,
                                '(h) Map width: ' + str(map_width))
        tcod.console_print_left(0, 2, 18, tcod.BKGND_NONE,
                                '(i) Map height: ' + str(map_height))
        tcod.console_print_left(0, 2, 20, tcod.BKGND_NONE,
                                '(j) FPS: ' + str(max_fps))

        tcod.console_flush()

        raw_key = tcod.console_wait_for_keypress(tcod.KEY_PRESSED)
        key = get_key(raw_key)
        if key == 'a':
            game.play(copy.deepcopy(players), conway_speed,
                     (map_width, map_height), max_fps)
        elif key == 'b':
            break
        elif key in player_keys:
            p = player_keys.index(key)
            player = players[p]
            if player.dead:
                player.dead = False
                player.controls = controls[p]
            elif player.controls:
                player.controls = None
            else:
                player.dead = True
        elif key == 'g':
            conway_speed = whole_number_menu(
                conway_speed, 'The Conway simulation will update every how many frames?')
        elif key == 'h':
            map_width = whole_number_menu(
                map_width, 'How wide should the map be?', min_var=1)
        elif key == 'i':
            map_height = whole_number_menu(
                map_height, 'How tall should the map be?', min_var=1)
        elif key == 'j':
            max_fps = whole_number_menu(
                max_fps, 'How many frames per second should the game run at?')
        elif key == tcod.KEY_ESCAPE:
            break
Beispiel #52
0
# Starting game loop
############################################################################
import human_input, game, random_strat, greedy_alg, naive_alg, misere
# solver_dict = {"human":human_input, "random":random_strat, "greedy":greedy_alg, "naive":naive_alg}
# solver = input("Please select a solver from the following by typing its name\n{}\n".format(solver_dict.keys()))
# if solver in solver_dict:
num_games = 100
top_score = [-1,-1,-1]
running_total = [0.0,0.0,0.0]
worst_score = [999,999,999]
for x in range(num_games):
	score = game.play(random_strat.get_move,verbose=False)
	if score[2] > top_score[2]:
		top_score = score
	if score[2] < worst_score[2]:
		worst_score = score
	running_total[0] += score[0]
	running_total[1] += score[1]
	running_total[2] += score[2]
	print("Game {}: {} pieces placed, {} lines cleared, score: {}".format(x,score[0],score[1], score[2]))

print("\n\nOver the course of {} games, avg pieces placed: {} avg lines cleared: {} avg score:{}".format(num_games,
	running_total[0]/num_games,running_total[1]/num_games,running_total[2]/num_games))
print("Your top score: {} pieces placed, {} lines cleared, with a score of {}".format(top_score[0], top_score[1], top_score[2]))
print(top_score[3])
print("Your worst score: {} pieces placed, {} lines cleared, with a score of {}".format(worst_score[0], worst_score[1], worst_score[2]))
print(worst_score[3])
Beispiel #53
0
	def test_play(self):
		self.assertEqual(play(['6D','KD','10D'],'AD')[0],'6D')
		self.assertEqual(play(['8D','10D','6H'])[0],'8D')
		self.assertEqual(play(['AC','KS','10D'],'10H')[0],'AC')
Beispiel #54
0
import os

from pybrain.tools.xml import NetworkReader

from game import play
from pybrain_examples.nn_pygame_bird.constants import NETWORKS_DIR

if __name__ == '__main__':
    filename = '2016_05_19/10_50.xml'
    net = NetworkReader.readFrom(os.path.join(NETWORKS_DIR, filename))
    play(net, False)
Beispiel #55
0
			player = aid
			players[player] = 100
			coins = players[player]
			print 'Welcome, ' + player + '!'
			print 'You have been given 100 complementary coins.'
			break
		else:
			print 'That account already exists!'
else:
	print 'Goodbye!'
	sys.exit(0)

while True:
	print '\nWhat would you like to do?'
	print '1. Play a round'
	print '2. Leave'
	
	choice = input('>')
	
	if choice == 1:
		# Play the game!
		coins = game.play(coins)
	else:
		print 'We hope you enjoyed your stay!'
		
		# Save player data
		players[player] = coins
		f = open('players.json', 'w')
		json.dump(players, f)
		print 'Goodbye!'
		sys.exit(0)
Beispiel #56
0
import sys
import pygame 

from constants import *

import game


import title_screen

if __name__ == "__main__":
  pygame.init()
  pygame.key.set_repeat(100, 100)
    
  columns = rows = 20
  size = width, height = tile_size[0] * columns,  tile_size[1] * rows
  screen = pygame.display.set_mode(size)

  title_screen.run(screen)
  
  game.play(screen)
Beispiel #57
0
def get_fitness(n):
	print 'Getting fitness of ' + str(n)
	return play(True, n)
Beispiel #58
0
 def test_game_lost_after_nine_crows(self):
     game = Game(iter([Dice.CROW]*9))
     assert game.play() == Outcome.LOST
Beispiel #59
0
			if choix==0:
				choix=4
			else:
				choix-=1

	if keys[pygame.K_DOWN]:
		if timer<=0:
			timer=10
			if choix==4:
				choix=0
			else:
				choix+=1

	if keys[pygame.K_SPACE] and timerMenu<=0:
		if choix==0:
			game.play(screen,varOptions)
			timerMenu=50
		elif choix==1:
			util.regles(screen)
		elif choix==2:
			varOptions = util.options(screen,varOptions)
		elif choix==3:
			util.credits(screen)
		elif choix==4:
			sys.exit()


	timer-=1
	timerMenu-=1

	screen.blit(background.image,background.rect)
Beispiel #60
0
                auto_start=None if args.no_start else args.auto_start,
                auto_restart=None if args.no_restart else args.auto_restart,
                allow_multi=args.allow_multi,
            )
            print("New game room_id is {}".format(room_id))

        elif subcmd == "remove":
            remove_room(args.room_id)

        elif subcmd == "start":
            start_room(args.room_id)

        elif subcmd == "join":
            room_url = "http://{}/games/{}".format(SERVER, args.room_id)
            print("Check game results {}".format(room_url))
            game.play(args.room_id, token, SERVER, args.debug, args.alias)
            show_results(args.room_id)

        elif subcmd == "results":
            show_results(args.room_id)

        elif subcmd == "play_devel":
            game.play("000000000000000000000000", token, SERVER, debug=True)

        elif subcmd == "play_vs_bot":
            room_id = new_room(max_players=2, auto_start=1, auto_restart=None, with_bot=True)
            try:
                game.play(room_id, token, SERVER, args.debug)
                show_results(room_id)
            finally:
                remove_room(room_id)