about summary refs log tree commit diff stats
path: root/lib/Octans/Puzzle.rakumod
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-041-0/+6
|
* Make class Puzzle, remove fancy chars, make module for get-puzzleAndinus2021-03-031-54/+15
| | | | | | - 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.
* Handle reading puzzle from file within Octans::CLI moduleAndinus2021-02-181-28/+23
| | | | 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.
* Allow the input puzzle to be of any sizeAndinus2021-01-201-35/+23
| | | | | | | | | | | 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-201-31/+47
| | | | | | 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-191-0/+56
bin/octans calls lib/Octans/CLI.rakumod which has the MAIN subroutine.