def do_show(args, config): name = args.name url = config.get('DEFAULT', 'url') key_file = config.get('DEFAULT', 'key_file') client = XoClient(base_url=url, keyfile=key_file) state = client.get_state() if name not in state: raise XoException('no such game: {}'.format(name)) game = state[name] player1 = '' player2 = '' if 'Player1' in game: player1 = game['Player1'] if 'Player2' in game: player2 = game['Player2'] board = list(game['Board'].replace('-', ' ')) game_state = game['State'] print "GAME: : {}".format(name) print "PLAYER 1 : {}".format(player1) print "PLAYER 2 : {}".format(player2) print "STATE : {}".format(game_state) print "" print " {} | {} | {}".format(board[0], board[1], board[2]) print " ---|---|---" print " {} | {} | {}".format(board[3], board[4], board[5]) print " ---|---|---" print " {} | {} | {}".format(board[6], board[7], board[8]) print ""
def do_list(args, config): url = config.get('DEFAULT', 'url') key_file = config.get('DEFAULT', 'key_file') client = XoClient(base_url=url, keyfile=key_file) state = client.get_state() fmt = "%-15s %-15.15s %-15.15s %-9s %s" print fmt % ('GAME', 'PLAYER 1', 'PLAYER 2', 'BOARD', 'STATE') for name in state: if 'Player1' in state[name]: player1 = state[name]['Player1'] else: player1 = '' if 'Player2' in state[name]: player2 = state[name]['Player2'] else: player2 = '' board = state[name]['Board'] game_state = state[name]['State'] print fmt % (name, player1, player2, board, game_state)