mirror of
https://codeberg.org/cblanken/boggler.git
synced 2026-07-25 19:19:20 -04:00
Add argument parsing to main module
This commit is contained in:
+23
-12
@@ -1,24 +1,35 @@
|
||||
"""Boggler Demo"""
|
||||
import argparse
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from .boggler_utils import BoggleBoard, build_full_boggle_tree, read_boggle_file
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 3 or len(sys.argv) > 4:
|
||||
print('Usage: python3 boggler.py <BOARD_FILE> <WORDLISTS_DIR> [MAX_WORD_LENGTH]')
|
||||
sys.exit(1)
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="boggler",
|
||||
description="Boggle board game solver"
|
||||
)
|
||||
|
||||
board = read_boggle_file(Path(sys.argv[1]))
|
||||
if len(sys.argv) == 3:
|
||||
boggle_board = BoggleBoard(board)
|
||||
elif len(sys.argv) == 4:
|
||||
parser.add_argument("board", type=Path, help="Path to board CSV file")
|
||||
parser.add_argument("wordlists", type=Path,
|
||||
help="Path to directory of wordlist files. The directory must contain \
|
||||
text files of the form words_X.txt where \"X\" is a character of \
|
||||
the alphabet")
|
||||
parser.add_argument("max_word_length", nargs="?", type=int, default=16,
|
||||
help="Maximum length of words searched for on provided board")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
def main():
|
||||
"""Command line tool for sovling Boggle boards"""
|
||||
board = read_boggle_file(args.board)
|
||||
try:
|
||||
boggle_board = BoggleBoard(board, int(sys.argv[3]))
|
||||
boggle_board = BoggleBoard(board, args.max_word_length)
|
||||
except ValueError:
|
||||
print("Invalid MAX_WORD_LENGTH. Please try again with a valid integer.")
|
||||
sys.exit(1)
|
||||
sys.exit()
|
||||
|
||||
try:
|
||||
boggle_tree = build_full_boggle_tree(boggle_board, Path(sys.argv[2]))
|
||||
boggle_tree = build_full_boggle_tree(boggle_board, args.wordlists)
|
||||
|
||||
print("\nBOARD")
|
||||
print(boggle_board)
|
||||
@@ -28,7 +39,7 @@ def main():
|
||||
for word in tree.word_paths:
|
||||
print(f"{word[0]: <{boggle_board.max_word_len}}: {word[1]}")
|
||||
|
||||
except ValueError as e:
|
||||
except ValueError:
|
||||
print("The [MAX_WORD_LENGTH] argument must be an integer.")
|
||||
print("Please try again.")
|
||||
sys.exit(1)
|
||||
|
||||
Reference in New Issue
Block a user