def play(): """Initiate a game, using the command line arguments as configuration.""" arguments = docopt(__doc__) if arguments['list_rules']: # list all possible game rules names = [ name.replace('.py', '') for name in listdir('rules') if '__init__' not in name and '.pyc' not in name ] print('\n'.join(names)) elif arguments['list_maps']: # list all possible maps print('\n'.join(listdir('maps'))) else: # start a game # parse arguments rules_name = arguments['RULES'] initial_zombies = int(arguments['-z']) minimum_zombies = int(arguments['-n']) docker_isolator = arguments['-i'] debug = arguments['-d'] isolator_port = int(arguments['-p']) use_basic_icons = arguments['-b'] max_frames = int(arguments['-f']) use_arduino = arguments['-a'] arduino_device = arguments['-v'] arduino_bauds = int(arguments['-u']) player_names = [] for player_part in arguments['PLAYERS'].split(','): if ':' in player_part: player_name, count = player_part.split(':') count = int(count) else: player_name = player_part count = 1 player_names.extend([ player_name, ] * count) size = arguments['-s'] if size: size = tuple(map(int, size.split('x'))) map_name = arguments['-m'] if map_name: map_file = path.join('maps', map_name) map_ = Map.from_file(map_file) if size: if size[0] < map_.size[0] or size[1] < map_.size[1]: message = "Map (%s) doesn't fit in specified size (%s) " \ "(leave it empty to use best fit)" raise Exception(message % (str(map_.size), str(size))) else: map_.size = size else: if not size: size = 30, 10 map_ = Map(size, []) # create and start game g = Game(rules_name=rules_name, player_names=player_names, map_=map_, initial_zombies=initial_zombies, minimum_zombies=minimum_zombies, docker_isolator=docker_isolator, isolator_port=isolator_port, debug=debug, use_basic_icons=use_basic_icons, use_arduino=use_arduino, arduino_device=arduino_device, arduino_bauds=arduino_bauds) g.play(max_frames)
def play(): """Initiate a game, using the command line arguments as configuration.""" arguments = docopt(__doc__) if arguments['list_rules']: # list all possible game rules names = [name.replace('.py', '') for name in listdir('rules') if '__init__' not in name and '.pyc' not in name] print('\n'.join(names)) elif arguments['list_maps']: # list all possible maps print('\n'.join(listdir('maps'))) else: # start a game # parse arguments rules_name = arguments['RULES'] initial_zombies = int(arguments['-z']) minimum_zombies = int(arguments['-n']) docker_isolator = arguments['-i'] debug = arguments['-d'] isolator_port = int(arguments['-p']) use_basic_icons = arguments['-b'] max_frames = int(arguments['-f']) use_arduino = arguments['-a'] arduino_device = arguments['-v'] arduino_bauds = int(arguments['-u']) player_names = [] for player_part in arguments['PLAYERS'].split(','): if ':' in player_part: player_name, count = player_part.split(':') count = int(count) else: player_name = player_part count = 1 player_names.extend([player_name, ] * count) size = arguments['-s'] if size: size = tuple(map(int, size.split('x'))) map_name = arguments['-m'] if map_name: map_file = path.join('maps', map_name) map_ = Map.from_file(map_file) if size: if size[0] < map_.size[0] or size[1] < map_.size[1]: message = "Map (%s) doesn't fit in specified size (%s) " \ "(leave it empty to use best fit)" raise Exception(message % (str(map_.size), str(size))) else: map_.size = size else: if not size: size = 30, 10 map_ = Map(size, []) # create and start game g = Game(rules_name=rules_name, player_names=player_names, map_=map_, initial_zombies=initial_zombies, minimum_zombies=minimum_zombies, docker_isolator=docker_isolator, isolator_port=isolator_port, debug=debug, use_basic_icons=use_basic_icons, use_arduino=use_arduino, arduino_device=arduino_device, arduino_bauds=arduino_bauds) g.play(max_frames)