about summary refs log tree commit diff stats
path: root/lib/Octans
Commit message (Collapse)AuthorAgeFilesLines
* Release v0.2.0 v0.2.0Andinus2021-03-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NEWS: ⁃ Removed `sample' option `--sample' will not solve the sample puzzle. ⁃ Removed shorthand for verbose option `-v' won't work in `v0.2.0'. ⁃ Change representation of visited squares When `--verbose' was passed, it would print the solved puzzle with visited squares replaced with fancy characters. Now it marks them by adding: • `*' to visited + gray squares (start positions) • `/' to visited squares ⁃ Removed time taken Time taken won't be printed anymore. It was misleading because the time printed was not the time taken to find that specific word, it was the time taken to find all the words upto that word. It would reset for each starting position.
* Mark visited gray squares with "*"Andinus2021-03-042-1/+11
|
* Don't print time takenAndinus2021-03-031-11/+2
| | | | | | | | It was misleading because the time printed was not the time taken to find that specific word, it was the time taken to find all the words upto that word. It would reset for each starting position. It's better to just remove the whole thing.
* Change subroutine declaration styleAndinus2021-03-035-13/+7
| | | | | | | | From: sub t () {} To: sub t() {}
* Make class Puzzle, remove fancy chars, make module for get-puzzleAndinus2021-03-033-89/+69
| | | | | | - Puzzle is a class that provides the grids & gray-squares. - Fancy chars were removed for ASCII characters. - get-puzzle is now in its own module.
* Re-structure codeAndinus2021-03-022-18/+21
| | | | These changes should make it easier to read the code.
* Print default USAGE, remove shorthand for verbose optionAndinus2021-03-021-24/+10
| | | | The input file format can be explained in the documentation.
* Print complete helpAndinus2021-02-281-1/+1
| | | | | Previously it wouldn't print the input file format but would only print the default $*USAGE.
* Remove sample puzzleAndinus2021-02-281-36/+19
|
* Fix the sample puzzle errorAndinus2021-02-191-4/+6
| | | | | | | | | | It would error out when the user runs sample puzzle because we're using $path.IO.f but that wasn't passed. It prints this error: Invocant of method 'f' must be an object instance of type 'IO::Path', not a type object of type 'IO::Path'.
* Handle reading puzzle from file within Octans::CLI moduleAndinus2021-02-182-30/+30
| | | | This makes it easier to understand.
* Fix the regex for puzzleAndinus2021-02-071-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The older regex fails on [today's puzzle] & I didn't really understand what it did. The newer one is simpler & I understand how it works. [today's puzzle] https://mastodon.art/@Algot/105690195742318751 Thanks to guifa on #raku@freenode, they explained me how they would build regex for this problem. I'm pasting the logs here: |[...] |10:35 <guifa> Smallest element here is the letter. Lots of ways to | represent it, but I’d go with \S+ |10:35 <guifa> The next smallest is the group of letters |10:36 <guifa> Which is what you just got with spaces in between it |10:36 <guifa> so you get (\S+)+ % \h |10:36 <guifa> Next you want to grab individual lines with that | pattern in it so |10:37 <guifa> ( (\S+)+ % \h )+ \n |10:37 <guifa> And lastly, you want to start the pattern after a | double return |[...] |10:39 <guifa> \n \n ( (\S+)+ % \h )+ % \n |10:41 <guifa> The only problem here is that this technically does | match Hint. So to limit things more, you can either | be stricter about the inner bit (using \S \*? instead | of \S+), explicitly putting “Hint\n\n” in the regex | start, or requiring more than one inner match (\S+) | ** 2..* % \h |[...] |10:47 <guifa> But you might consider breaking things out into | tokens |[...] |10:54 <guifa> I think a lot of times people try to write regex left | to right, when they need to make it small to big |10:54 <guifa> That’s part of the reason you have the grammars in | Raku — it really pushes you to think of things that | way I asked guifa before including this, they were okay with it.
* When computing neighbors, set it to an empty arrayAndinus2021-01-261-3/+6
| | | | | If we don't find any neighbors then we shouldn't have to recompute this result.
* Add an option to specify minimum lengthAndinus2021-01-241-2/+3
|
* Allow the input puzzle to be of any sizeAndinus2021-01-202-45/+34
| | | | | | | | | | | It should still be a 2d grid but can have any number of grids, not necessarily MxN. Even this is a valid input: a b c s d e r c This input should be valid even when parsing the url. It will certainly be valid when the input is a file.
* Read from file if passed, modify USAGEAndinus2021-01-202-53/+82
| | | | | | Previouly, the only way of passing the puzzle was to enter a url. Now octans is able to read from files too. If the file exist & it's readable then octans will read the puzzle from there.
* Re-structure for CPAN upload, include a dictionary file v0.1.0Andinus2021-01-195-0/+345
bin/octans calls lib/Octans/CLI.rakumod which has the MAIN subroutine.