Shlomi Fish avatar Shlomi Fish committed dfc9b7b

More refactoring of _gen_clue_positions.

Comments (0)

Files changed (1)

abc-path/Games-ABC_Path-Generator/lib/Games/ABC_Path/Generator.pm

 
 =cut
 
+sub _gen_clue_positions {
+    my ($cb) = @_;
+    return [map { $cb->($_) } (0 .. $LEN-1)];
+};
+
 my @_clues_positions =
 (
     map {
         [map { __PACKAGE__->_xy_to_int($_) } @{$_}]
     }
     (
-        [ map { [$_,$_] } (0 .. $LEN-1) ],
-        [ map { [$_,4-$_] } ( 0 .. $LEN-1) ],
-        (
-            map { my $y = $_; 
-            [ map { [$y,$_] } (0 .. $LEN-1) ] 
-            } (0 .. $LEN-1)
-        ),
-        (
-            map { my $x = $_;
-            [ map { [$_,$x] } (0 .. $LEN-1) ] 
-            } (0 .. $LEN-1)
-        ),
+        _gen_clue_positions(sub { [$_,$_];   }),
+        _gen_clue_positions(sub { [$_,4-$_]; }),
+        (map { my $y = $_; _gen_clue_positions(sub { [$y,$_] }); }
+            (0 .. $LEN-1)),
+        (map { my $x = $_; _gen_clue_positions(sub { [$_,$x] }); }
+            (0 .. $LEN-1)),
     )
 );
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.