diff options
author | Andinus <andinus@nand.sh> | 2021-03-04 14:26:19 +0530 |
---|---|---|
committer | Andinus <andinus@nand.sh> | 2021-03-04 14:26:19 +0530 |
commit | bdb1dbcea8c4ab9270caeacf6bfb448c35824a90 (patch) | |
tree | 7106498830bacd6cefa4e53c33e175ced8650670 /lib/Octans | |
parent | fba335150a95f7688c2e0ae279e837557d2b5a0e (diff) | |
download | octans-bdb1dbcea8c4ab9270caeacf6bfb448c35824a90.tar.gz |
Mark visited gray squares with "*"
Diffstat (limited to 'lib/Octans')
-rw-r--r-- | lib/Octans/CLI.rakumod | 6 | ||||
-rw-r--r-- | lib/Octans/Puzzle.rakumod | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/Octans/CLI.rakumod b/lib/Octans/CLI.rakumod index 0672761..3a5be30 100644 --- a/lib/Octans/CLI.rakumod +++ b/lib/Octans/CLI.rakumod @@ -51,7 +51,11 @@ multi sub MAIN( print " " x 3; for ^$puzzle.grids[$y].elems -> $x { printf " {$puzzle.grids[$y][$x]}%s", - @visited[$y][$x] ?? "/" !! " "; + @visited[$y][$x] + # visited gray squares get marked with "*", + # visited squares with "/" & unvisited with " ". + ?? ($puzzle.is-gray-square($y, $x) ?? "*" !! "/") + !! " "; } print "\n"; } diff --git a/lib/Octans/Puzzle.rakumod b/lib/Octans/Puzzle.rakumod index 731cc8e..e88a74a 100644 --- a/lib/Octans/Puzzle.rakumod +++ b/lib/Octans/Puzzle.rakumod @@ -17,4 +17,10 @@ class Puzzle is export { # Accessor for @!gray-squares. method gray-squares() { @!gray-squares; } + + # Given $y, $x where $y is row index & $x is column index, + # is-gray-square returns if the cell is a gray square. + method is-gray-square(Int $y, Int $x) { + return so @!gray-squares.grep(($y, $x)); + } } |