aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@andemark.io>2025-08-18 09:11:28 +0000
committerMark Anderson <mark@andemark.io>2025-08-18 09:11:28 +0000
commitb5c0dbb2e29465fb900da10b404beab74b012348 (patch)
tree7f73cf094e6a0a31727602379c69c4555845b42c
parenta2293cf4868fa5df03d214d4744114ed7cecdd64 (diff)
downloadperlweeklychallenge-club-b5c0dbb2e29465fb900da10b404beab74b012348.tar.gz
perlweeklychallenge-club-b5c0dbb2e29465fb900da10b404beab74b012348.tar.bz2
perlweeklychallenge-club-b5c0dbb2e29465fb900da10b404beab74b012348.zip
Challenge 335 Solutions (Raku)
-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'
}