diff options
author | Andinus <andinus@nand.sh> | 2021-01-19 21:53:16 +0530 |
---|---|---|
committer | Andinus <andinus@nand.sh> | 2021-01-19 21:53:16 +0530 |
commit | a5c540608c469a2797262facb766e175b932f0e2 (patch) | |
tree | 1e0eb79678d66f5ba657c63003592029757aefe7 /lib/Puzzle.rakumod | |
parent | 5bb0f224483fbc1d57fd1c5a2f4a22dd7263ecd6 (diff) | |
download | octans-0.1.0.tar.gz |
Re-structure for CPAN upload, include a dictionary file v0.1.0
bin/octans calls lib/Octans/CLI.rakumod which has the MAIN subroutine.
Diffstat (limited to 'lib/Puzzle.rakumod')
-rw-r--r-- | lib/Puzzle.rakumod | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/lib/Puzzle.rakumod b/lib/Puzzle.rakumod deleted file mode 100644 index bf4f8c3..0000000 --- a/lib/Puzzle.rakumod +++ /dev/null @@ -1,56 +0,0 @@ -unit module Puzzle; - -use WWW; - -# get-puzzle returns the @puzzle along with it's @gray-squares. -sub get-puzzle ( - Str $url, - - # @puzzle will hold the puzzle grid. - @puzzle, - - # @gray-squares will hold the position of gray squares. Algot - # marks them with an asterisk ("*") after the character. - @gray-squares -) is export { - # $toot_url will hold the url that we'll call to get the toot data. - my Str $toot_url; - - # User can pass 2 types of links, either it will be the one when they - # view it from their local instance or the one they get from Algot's - # profile. We set $toot_url from it. - if $url.match("web/statuses") -> $match { - $toot_url = $match.replace-with("api/v1/statuses"); - } else { - $toot_url = "https://mastodon.art/api/v1/statuses/" ~ $url.split("/")[*-1]; - } - - # @gray-squares should be empty. - @gray-squares = (); - - # jget just get's the url & decodes the json. We access the - # description field of 1st media attachment. - if (jget($toot_url)<media_attachments>[0]<description> ~~ - - # This regex gets the puzzle in $match. - / [[(\w [\*]?) \s*] ** 4] ** 4 $/) -> $match { - - # We have each character of the puzzle stored in $match. It's - # assumed that it'll be a 4x4 grid. - for 0 .. 3 -> $y { - for 0 .. 3 -> $x { - with $match[0][($y * 4) + $x].Str.lc -> $char { - - # If it ends with an asterisk then we push the - # position to @gray-squares. - if $char.ends-with("*") { - @puzzle[$y][$x] = $char.comb[0]; - push @gray-squares, [$y, $x]; - } else { - @puzzle[$y][$x] = $char; - } - } - } - } - } -} |