diff --git a/board_randimizer.py b/board_randimizer.py index 88dfa7e..3f18c6d 100755 --- a/board_randimizer.py +++ b/board_randimizer.py @@ -1,41 +1,30 @@ -#!/bin/python +'''Module to generate random Boggle boards for testing''' from sys import argv from random import randint, shuffle from math import sqrt def read_dice_file(path): + '''Return list of die strings from file ignoring all comments (#)''' with open(path, 'r+', encoding="utf-8") as file: - # Ignore first two lines - file.readline() - file.readline() - dice = [] - line = ''.join(file.readline().rstrip().split(',')) - while(line): - dice.append(line) - line = ''.join(file.readline().rstrip().split(',')) + return [''.join(line.rstrip().split(',')) for line in file.readlines() if line[0] != "#"] - return dice - -def roll_die(die): +def roll_die(die: str): + '''Return a face of the given die string to simulate rolling a die''' return str(die[randint(0, len(die) - 1)]) -def roll_dice(dice): - rolls = [] - for die in dice: - roll = roll_die(die) - rolls.append(roll) - - return rolls +def roll_dice(dice: list[str]): + '''Return a random roll for each die''' + return [ roll_die(die) for die in dice ] if __name__ == '__main__': if len(argv) != 2: - print('Usage: python3 ') + print('Usage: python3 board_randomizer.py ') else: - dice = read_dice_file(argv[1]) - shuffle(dice) - rolls = roll_dice(dice) + dice_strings = read_dice_file(argv[1]) + shuffle(dice_strings) + rolls = roll_dice(dice_strings) # Format dice rolls for boards file board_size = int(sqrt(len(rolls))) - for i in range(0, len(dice), board_size): + for i in range(0, len(dice_strings), board_size): print("".join(rolls[i:i+board_size]))