diff options
| author | RikedyP <rikedyp@gmail.com> | 2025-08-20 11:01:13 +0100 |
|---|---|---|
| committer | RikedyP <rikedyp@gmail.com> | 2025-08-20 11:01:13 +0100 |
| commit | af21b591aa132d8ffb86b936da361a7d347f99a2 (patch) | |
| tree | 70f20d0ba3c0410bda974facbadc771c897f7612 | |
| parent | 50bfba5118a09063523a28007a76ff4d831d27cf (diff) | |
| download | perlweeklychallenge-club-af21b591aa132d8ffb86b936da361a7d347f99a2.tar.gz perlweeklychallenge-club-af21b591aa132d8ffb86b936da361a7d347f99a2.tar.bz2 perlweeklychallenge-club-af21b591aa132d8ffb86b936da361a7d347f99a2.zip | |
week 335 in APL
| -rw-r--r-- | challenge-335/richard-park/apl/CommonCharacters.aplf | 34 | ||||
| -rw-r--r-- | challenge-335/richard-park/apl/FindWinner.aplf | 53 |
2 files changed, 87 insertions, 0 deletions
diff --git a/challenge-335/richard-park/apl/CommonCharacters.aplf b/challenge-335/richard-park/apl/CommonCharacters.aplf new file mode 100644 index 0000000000..4ca916e3ca --- /dev/null +++ b/challenge-335/richard-park/apl/CommonCharacters.aplf @@ -0,0 +1,34 @@ + CommonCharacters←{ + a←∪∊⍵ + a/⍨⌊/+/a∘.=↑⍵ + ⍝ Had thought ⊃∩/ would work + ⍝ then shamelessly stole from @code_report/@conor-hoekstra + + tests←( + ( + 'bella' + 'label' + 'roller' + ) + ( + 'cool' + 'lock' + 'cook' + ) + ( + 'hello' + 'world' + 'pole' + ) + ( + 'abc' + 'def' + 'ghi' + ) + ( + 'aab' + 'aac' + 'aaa' + ) + ) + } diff --git a/challenge-335/richard-park/apl/FindWinner.aplf b/challenge-335/richard-park/apl/FindWinner.aplf new file mode 100644 index 0000000000..a4b33a5fc5 --- /dev/null +++ b/challenge-335/richard-park/apl/FindWinner.aplf @@ -0,0 +1,53 @@ + FindWinner←{ + ⎕IO←0 + Win←{3∊⊃,/+/¨(⍵)(⌽⍵)(0 0⍉⍵)(0 0⍉⌽⍵)} + board←(1 2⍴⍨≢⍵)@⍵⊢3 3⍴0 + (a b)←1 2=⊂board + ⍝ who won is a, b or neither (0,1,2) + who←1⍳⍨Win¨a b + ⍝ draw if neither won and no gaps on board + who+←(2=who)∧(~0∊board) + who⊃'A' 'B' 'Pending' 'Draw' + + tests←( + ( + 0 0 + 2 0 + 1 1 + 2 1 + 2 2 + ) + ( + 0 0 + 1 1 + 0 1 + 0 2 + 1 0 + 2 0 + ) + ( + 0 0 + 1 1 + 2 0 + 1 0 + 1 2 + 2 1 + 0 1 + 0 2 + 2 2 + ) + ( + 0 0 + 1 1 + ) + ( + 1 1 + 0 0 + 2 2 + 0 1 + 1 0 + 0 2 + ) + ) + + } |
