aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-335/mark-anderson/raku/ch-2.raku29
1 files changed, 16 insertions, 13 deletions
diff --git a/challenge-335/mark-anderson/raku/ch-2.raku b/challenge-335/mark-anderson/raku/ch-2.raku
index f3a580d72c..fdc525fa0f 100644
--- a/challenge-335/mark-anderson/raku/ch-2.raku
+++ b/challenge-335/mark-anderson/raku/ch-2.raku
@@ -24,19 +24,22 @@ sub find-winner(+@moves)
@moves[$seq].map({ @board[.[0];.[1]] = $ltr });
- # check rows
- return $ltr if @board.first({ .all eq $ltr });
-
- # check upper left to lower right diagonal
- my @a = (^Inf) Z (^Inf).head(@board);
- return $ltr if @a.map({ @board[.[0];.[1]] }).all eq $ltr;
-
- # check upper right to lower left diagonal
- @a = (^Inf) Z (@board.end...0);
- return $ltr if @a.map({ @board[.[0];.[1]] }).all eq $ltr;
-
- # check columns
- return $ltr if ([Z] @board).first({ .all eq $ltr });
+ return $ltr if any
+ (
+ # check rows
+ @board.first({ .all eq $ltr }),
+
+ # check upper left to lower right diagonal
+ ((^Inf) Z (^Inf).head(@board))
+ .map({ @board[.[0];.[1]] }).all eq $ltr,
+
+ # check upper right to lower left diagonal
+ ((^Inf) Z (@board.end...0))
+ .map({ @board[.[0];.[1]] }).all eq $ltr,
+
+ # check columns
+ ([Z] @board).first({ .all eq $ltr })
+ );
return 'Draw'
}