diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-08-05 23:40:48 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-05 23:40:48 +0100 |
| commit | a22bb8cbcd61aeacf38a434716538f112a6c6ad6 (patch) | |
| tree | 665d07cc6b51402957d014c09f46683c0d2eb74d /challenge-333/roger-bell-west/lua/ch-1.lua | |
| parent | 153f22e7dc6b1860d8561da89efeeefdfa83eab9 (diff) | |
| parent | a57a3a568368c406944dd042728ed141b66a02a3 (diff) | |
| download | perlweeklychallenge-club-a22bb8cbcd61aeacf38a434716538f112a6c6ad6.tar.gz perlweeklychallenge-club-a22bb8cbcd61aeacf38a434716538f112a6c6ad6.tar.bz2 perlweeklychallenge-club-a22bb8cbcd61aeacf38a434716538f112a6c6ad6.zip | |
Merge pull request #12473 from Firedrake/rogerbw-challenge-333
RogerBW solutions for challenge no. 333
Diffstat (limited to 'challenge-333/roger-bell-west/lua/ch-1.lua')
| -rwxr-xr-x | challenge-333/roger-bell-west/lua/ch-1.lua | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/challenge-333/roger-bell-west/lua/ch-1.lua b/challenge-333/roger-bell-west/lua/ch-1.lua new file mode 100755 index 0000000000..7a5ff61942 --- /dev/null +++ b/challenge-333/roger-bell-west/lua/ch-1.lua @@ -0,0 +1,70 @@ +#! /usr/bin/lua + +function straightline(a) + local b = {} + for _, xy in ipairs(a) do + local u = true + for __, bxy in ipairs(b) do + if xy[1] == bxy[1] and xy[2] == bxy[2] then + u = false + break + end + end + if u then + table.insert(b, xy) + end + end + if #b < 3 then + return true + end + local p = b[1][1] + local q = b[2][1] - b[1][1] + local r = b[1][2] + local s = b[2][2] - b[1][2] + for tp = 2, #b do + local tpair = b[tp] + if q == 0 and tpair[1] ~= b[1][1] then + return false + end + if s == 0 and tpair[2] ~= b[1][2] then + return false + end + if q ~= 0 and s ~= 0 then + local n1 = (tpair[1] - p) / q + local n2 = (tpair[2] - r) / s + if n1 ~= n2 then + return false + end + end + end + return true +end + +if straightline({{2, 1}, {2, 3}, {2, 5}}) then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if straightline({{1, 4}, {3, 4}, {10, 4}}) then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if not straightline({{0, 0}, {1, 1}, {2, 3}}) then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if straightline({{1, 1}, {1, 1}, {1, 1}}) then + io.write("Pass") +else + io.write("FAIL") +end +print("") + |
