aboutsummaryrefslogtreecommitdiff
path: root/tris/lines.go
diff options
context:
space:
mode:
authorJoop Kiefte <ikojba@gmail.com>2020-09-12 09:05:28 +0200
committerJoop Kiefte <ikojba@gmail.com>2020-09-12 09:05:28 +0200
commit3edb4c1779ae23dd976c067622f2aaee9ac98f5d (patch)
tree9289f2b2a674ab11bb6eed6dbead64810d567497 /tris/lines.go
parentac3196415d5d87a745d339f1548573b0b5745c41 (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.go27
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
+}