Commit Graph
74 Commits
Author SHA1 Message Date
cblankenandGitHub 843e167bf4 Update README.md 2023-03-30 19:08:47 -04:00
cblanken c09dce4bd6 Add basic solved board tests 2023-03-23 14:19:28 -04:00
cblanken a37548a4ee Merge branch 'main' into dev 2023-03-23 12:46:02 -04:00
cblanken 1dc118e953 Fix boggle tree missing multi-letter nodes
The BoggleTree object when inserting nodes did not properly check for nodes
with values of more than 1 letter. Therefore, any words with "qu" after the
root would not be included in the solved board. As of now, only nodes with
a maximum of 2 letters are accounted for, 3+ letter nodes won't be checked.
2023-03-23 12:42:40 -04:00
cblanken 6d3a58595c Replace print(s) with logging functions 2023-03-22 16:25:37 -04:00
cblanken 8b9dc89420 Update README with build instructions 2023-03-13 21:53:03 -04:00
cblanken a80111072f Bump release version 2022-12-30 20:55:44 -05:00
cblanken fa01d442a5 Fix bug in board randomizer
- The board randomizer did not account for dice files that don't contain an exact integer squared number of dice. For example the 5x5 dice file contains 26 possible dice since 1 extra die is provided.
- The fix takes the square root of the number of dice and takes the floor of that number as the total number of dice to choose.
2022-12-30 19:54:00 -05:00
cblanken 733c1474b0 Add 5x5 dice file 2022-12-30 19:51:41 -05:00
cblanken 54f79c0afe Remove dead code from boggler.py 2022-11-16 20:37:30 -05:00
cblanken 9f364ee90e Remove old dictionary word prefix lists 2022-11-16 20:36:55 -05:00
cblanken e219954ba6 Add function to flatten boggle board results into 1D list 2022-10-10 12:00:42 -04:00
cblanken f4accfe959 Update wordlist splitting script
- use ripgrep to exclude proper nouns (with capitals) output only the
  capture group
2022-09-28 13:01:39 -04:00
cblanken bc70b88bf7 Bump version 2.0.0 2022-09-26 11:44:51 -04:00
cblanken 21aab46b96 Refactor board_randomizer
- Make file read separate and return "dice" or a list of strings from
  dice handling functions for use in downstream programs
2022-09-26 11:40:36 -04:00
cblanken f18c30cb60 Rename Super Big Boggle dice file 2022-09-23 10:20:48 -04:00
cblanken da915b723c Update wordlist splitting script
- Force lowercase on split
- Only match single (non compound) words
- Don't match punctuation
- Sort and uniquify
2022-09-23 10:20:48 -04:00
cblanken d5a102713d Fix die letters for 'New Boggle' dice 2022-09-23 10:20:38 -04:00
cblanken c488263eea Bump version and update license 2022-09-21 10:15:14 -04:00
cblanken fe1f1c2b97 Fix MAX_WORD_LENGTH parsing 2022-09-21 10:04:02 -04:00
cblanken d2584686a3 Fix max word length
- Previously the max word length parameter was checking the tree depths
  instead of the length of the word
- This fix acounts for multi-letter blocks like 'Qu', 'Tr' etc.
2022-09-21 09:45:09 -04:00
cblanken 8f75604d15 Handle blocks with empty strings and non-existant wordlists 2022-09-20 22:45:57 -04:00
cblanken 96da732dd9 Update board_randomizer module
- Fix typo: randimizer to randomizer
- Add module function to get direct 2d array of board values
2022-09-20 15:58:26 -04:00
cblanken ec53042d18 Update and move word splitting script 2022-09-20 13:21:57 -04:00
cblankenandGitHub 5c18a4aebf Update README.md 2022-09-15 14:06:55 -04:00
cblanken b197253d86 Add 9x9 dice file 2022-09-15 13:44:14 -04:00
cblanken 67f8c439b0 Update release version 2022-09-15 13:44:14 -04:00
cblanken 8c41ad212d Add missing __init__.py for PyPI package 2022-09-15 13:44:14 -04:00
cblanken 94800909b4 Update project version number 2022-09-15 13:44:14 -04:00
cblanken f24b996411 Update README.md 2022-09-15 13:44:14 -04:00
cblanken e4df95cd08 Update .gitignore 2022-09-15 13:44:14 -04:00
cblanken 0e9b120e94 Reorganize files into PyPI package format 2022-09-15 13:44:14 -04:00
cblanken 276c27f1ce Add pyproject.toml for PyPI 2022-09-15 13:44:13 -04:00
cblanken d30c44af3c Add MIT LICENSE 2022-09-15 13:43:55 -04:00
cblanken 5da33cf02c Update dice files 2022-09-07 11:27:09 -04:00
cblanken 600efc19c2 Remove old demo code from boggler_utils.py 2022-09-07 10:29:56 -04:00
cblanken cdb1542184 Fix bug loading duplicate wordlist for multi-letter blocks 2022-09-07 10:28:12 -04:00
cblanken 795f1540b4 Generate '_' words file for 6x6 board 2022-09-06 15:34:01 -04:00
cblanken 91390ea425 Add empty _ word files
The "_" is used to support the "blank" or "block" characters in Super Big Boggle (6x6).
2022-09-06 15:28:15 -04:00
cblanken 2a6a27b0b8 Update 4x4 dice and add 6x6 dice 2022-09-06 15:27:19 -04:00
cblanken b445071ccc Merge branch 'multiprocessing' 2022-09-06 15:10:27 -04:00
cblanken 9c8e94964c Add multiprocessing for board solving 2022-09-06 15:08:26 -04:00
cblanken 2fd5b05717 Update .gitignore 2022-09-01 15:29:37 -04:00
cblanken 0cdd3895ee Add multiprocessing for board solving 2022-09-01 12:42:02 -04:00
cblanken 50d4625b84 Add misc board files and rename dice file 2022-09-01 08:40:06 -04:00
cblanken c88f657113 Add README 2022-08-31 19:44:02 -04:00
cblanken 14a813ed74 Update boards dir with boards in csv format 2022-08-31 14:44:49 -04:00
cblanken 46dd069cfd Track words found in WordTree(s) for easier display 2022-08-31 14:28:30 -04:00
cblanken 31a307e83d Remove old boggler implementation
Update boggler cli to use WordTree implementation
2022-08-31 10:37:02 -04:00
cblanken bc4922dc55 Add printable board 2022-08-31 09:56:47 -04:00
cblanken 5f9a0d1990 Refactor to account for multi-letter nodes
Updates WordTree and WordNodes to build trees with WordNodes containing
blocks that have multiple letters such as "Qu".
2022-08-30 18:00:04 -04:00
cblanken dc532c1fdd Update board_randomizer.py to generate csv board files 2022-08-29 15:21:46 -04:00
cblanken 0f5e5af5ae Update boggler_utils main to accept board.csv file 2022-08-29 15:20:49 -04:00
cblanken 28b3d56880 Update dictionary type hinting 2022-08-26 19:51:52 -04:00
cblanken 79486d4217 Update board_randomizer and dice file 2022-08-26 19:37:32 -04:00
cblanken 6d6d56d1cb Add function to solve entire boggle board 2022-08-26 19:31:49 -04:00
cblanken 88b43d0679 Update WordTree and WordNode to use @property decorators 2022-08-26 16:12:11 -04:00
cblanken 23fa422915 Recursively build WordTree based on boggle board and dictionary 2022-08-26 14:40:51 -04:00
cblanken 3288325d25 Refactor board_randomizer for clarity and pylint recs 2022-08-25 13:00:20 -04:00
cblanken 8bbd7b61b4 Refactor BoggleBoard/BoggleCell with non-public properties 2022-08-25 09:27:29 -04:00
cblanken 7d299961af Add Boggle board and cell abstractions
WIP: Building subtrees of boggle board based on dictionary
2022-08-24 17:18:36 -04:00
cblanken fab34343ae Add .gitignore 2022-08-24 17:00:14 -04:00
cblanken 63647f8270 Add boggler_utils.py
Inlcludes WordTree and WordNode(s) for structuring dictionary data
2022-08-19 17:45:40 -04:00
cblanken c0d4df6993 Reformat to match pylint recommendations 2022-08-19 13:07:30 -04:00
cblanken 1c2614ddb7 Randomize order of dice on the board 2022-03-18 11:54:08 -04:00
cblanken daf7fb7a9a Fix output format for board generator 2022-03-18 11:48:03 -04:00
cblanken 9cca821805 Add boggle board randomizer given a 'dice' file 2022-01-05 18:52:08 -05:00
cblanken 287476f7b4 Remove hardcoded wordlist and prefix wordlist parameters 2022-01-03 16:28:00 -05:00
cblanken 565b36fd9e Add script to split wordlist by alpha character 2022-01-03 16:26:58 -05:00
cblanken 51afca81fb Add scrabble 2019 wordlists and move dwyl wordlist 2022-01-03 16:25:35 -05:00
cblanken b816054fb3 Check word prefixes to reduce problem space
Produce a prefix wordlist from a dictionary wordlist using the
`filter_prefix.sh` script.
2021-12-28 22:58:18 -05:00
cblanken 10e45a22d2 Add primary boggle solver 2021-12-25 21:26:13 -05:00
cblanken 920769d9e4 Add test Boggle boards 2021-12-25 21:25:18 -05:00
cblanken 9b8616770e Add dwyl English wordlist
From https://github.com/dwyl/english-words/blob/master/words_alpha.txt
Wordlist split into multipel file by starting character.
2021-12-25 21:22:53 -05:00