def run_game(player_one, player_two): print 'Starting Game' game = GameBoard() turn = 0 while game.winner is None: #player one plays even turns if turn % 2 == 0: current_player = player_one #player two plays odd turns else: current_player = player_two # get player input print game print ' '.join(str(number) for number in range(game.columns)) column = raw_input('{} which column to place {}? '.format( current_player.name, current_player.piece)) # try to insert piece into board, retry turn if failure if not game.insert_piece(column, current_player.piece): print 'Column either full or invalid, please make another move' continue turn += 1 print game print '{} wins in {} turns'.format(current_player.name, turn)
def run_game(player_one, player_two): print 'Starting Game' game = GameBoard() turn = 0 while game.winner is None: #player one plays even turns if turn % 2 == 0: current_player = player_one #player two plays odd turns else: current_player = player_two # get player input print game print ' '.join(str(number) for number in range(game.columns)) column = raw_input('{} which column to place {}? '.format( current_player.name, current_player.piece )) # try to insert piece into board, retry turn if failure if not game.insert_piece(column, current_player.piece): print 'Column either full or invalid, please make another move' continue turn += 1 print game print '{} wins in {} turns'.format(current_player.name, turn)
def test_vertical_win(): game = GameBoard() game.insert_piece(0, 'X') game.insert_piece(0, 'X') game.insert_piece(0, 'X') assert game.winner is None game.insert_piece(0, 'X') assert game.winner == 'X'
def test_horizontal_win(): game = GameBoard() game.insert_piece(0, 'X') game.insert_piece(1, 'X') game.insert_piece(2, 'X') assert game.winner is None game.insert_piece(3, 'X') assert game.winner == 'X'
def test_insert_piece_success(): # ensure correctly inserting piece results in successful return game = GameBoard() assert game.insert_piece(0, 'X') is True
def test_good_string_entry(): # ensure board state changes upon correct string entry game = GameBoard() empty_board = str(game) game.insert_piece('0', 'X') assert str(game) != empty_board
def test_bad_string_entry(): # ensure board state remains unchanged upon bad string entry game = GameBoard() empty_board = str(game) game.insert_piece('test', 'X') assert str(game) == empty_board
def test_bad_int_entry(): # ensure board state remains unchanged upon bad int entry game = GameBoard() empty_board = str(game) game.insert_piece(12315, 'X') assert str(game) == empty_board
def test_diagonal_win(): game = GameBoard() game.insert_piece(0, 'X') game.insert_piece(1, 'Y') game.insert_piece(1, 'X') game.insert_piece(2, 'Y') game.insert_piece(2, 'Y') game.insert_piece(2, 'X') game.insert_piece(3, 'Y') game.insert_piece(3, 'Y') game.insert_piece(3, 'Y') assert game.winner is None game.insert_piece(3, 'X') assert game.winner == 'X'
def test_insert_piece_failure(): # ensure incorrectly inserting piece results in failure return game = GameBoard() assert game.insert_piece('test', 'X') is False
def run_simulation(): print 'Game Start' game = GameBoard() game.insert_piece(0,'X') print game print '#'* 10, 'winner: {}'.format(game.winner), '#'* 10 game.insert_piece(1, 'Y') print game print '#'* 10, 'winner: {}'.format(game.winner), '#'* 10 game.insert_piece(0,'X') print game print '#'* 10, 'winner: {}'.format(game.winner), '#'* 10 game.insert_piece(2, 'Y') print game print '#'* 10, 'winner: {}'.format(game.winner), '#'* 10 game.insert_piece(0,'X') print game print '#'* 10, 'winner: {}'.format(game.winner), '#'* 10 game.insert_piece(2, 'Y') print game print '#'* 10, 'winner: {}'.format(game.winner), '#'* 10 game.insert_piece(0,'X') print game print '#'* 10, 'winner: {}'.format(game.winner), '#'* 10