diff options
author | Joop Kiefte <ikojba@gmail.com> | 2020-09-12 09:05:28 +0200 |
---|---|---|
committer | Joop Kiefte <ikojba@gmail.com> | 2020-09-12 09:05:28 +0200 |
commit | 3edb4c1779ae23dd976c067622f2aaee9ac98f5d (patch) | |
tree | 9289f2b2a674ab11bb6eed6dbead64810d567497 /tris/lines.go | |
parent | ac3196415d5d87a745d339f1548573b0b5745c41 (diff) |
Mostly playable now -- kicks still missing and problem with floor detection L piece
Diffstat (limited to 'tris/lines.go')
-rw-r--r-- | tris/lines.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tris/lines.go b/tris/lines.go new file mode 100644 index 0000000..5cb6981 --- /dev/null +++ b/tris/lines.go @@ -0,0 +1,27 @@ +package tris + +func (f Field) Lines() (int, Field) { + full := [10]bool{true, true, true, true, true, true, true, true, true, true} + empty := [10]bool{false, false, false, false, false, false, false, false, false, false} + var n int + var nf [][10]bool + + // count and collect + for _, line := range f { + if line == full { + n++ + } else { + nf = append(nf, line) + } + } + + // compress + for i := 0; i < 20; i++ { + if i < n { + f[i] = empty + } else { + f[i] = nf[i-n] + } + } + return n, f +} |