diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-05-14 21:45:36 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-05-14 21:45:36 +1200 |
commit | 05f797ab7280db393840d04d3f80fabefd0fe525 (patch) | |
tree | 69192516a7e9738d1a655973a582a5741024bad9 | |
parent | Clear letters array before each line in squ(6df) (diff) | |
download | dotfiles-05f797ab7280db393840d04d3f80fabefd0fe525.tar.gz dotfiles-05f797ab7280db393840d04d3f80fabefd0fe525.zip |
Array-less approach to squ(6df)
-rw-r--r-- | games/squ.awk | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/games/squ.awk b/games/squ.awk index b66b9b10..abd16934 100644 --- a/games/squ.awk +++ b/games/squ.awk @@ -1,10 +1,7 @@ # Make a reduced Latin square out of each line of input -len = length { +l = length { str = toupper($0) - split("", let, ":") - for (i = 1; i <= len; i++) - let[i - 1] = substr(str, i, 1) - for (j in let) - for (k in let) - printf (k + 1 < len) ? "%s " : "%s\n", let[(k + j) % len] + for (j = 0; j < l; j++) + for (k = 0; k < l; k++) + printf (k < l - 1) ? "%s " : "%s\n", substr(str, (k + j) % l + 1, 1) } |