diff options
author | Joop Kiefte <ikojba@gmail.com> | 2020-09-07 05:39:11 +0200 |
---|---|---|
committer | Joop Kiefte <ikojba@gmail.com> | 2020-09-07 05:39:11 +0200 |
commit | efc9585abc6db21b2c882a361c7bddee1a2b13fa (patch) | |
tree | 7926b40f75c3a9fbf867f4fb0dec1617309df883 | |
parent | bcd3ffae567177730ac575293544e646995b0060 (diff) |
Adding foundation for wall kicks
-rw-r--r-- | tris/core.go | 4 | ||||
-rw-r--r-- | tris/srs.go | 32 |
2 files changed, 36 insertions, 0 deletions
diff --git a/tris/core.go b/tris/core.go index 4824ead..af46311 100644 --- a/tris/core.go +++ b/tris/core.go @@ -9,6 +9,10 @@ type Point struct { X, Y int } +func (p Point) Add(q Point) Point { + return Point{X: p.X+q.X, Y: p.Y+q.Y} +} + type Piece [4]uint16 // A table that represents each piece from https://tetris.fandom.com/wiki/SRS diff --git a/tris/srs.go b/tris/srs.go new file mode 100644 index 0000000..d6c8220 --- /dev/null +++ b/tris/srs.go @@ -0,0 +1,32 @@ +package tris + +// As at the bottom of https://tetris.fandom.com/wiki/SRS but Y inverse because we start Y at the top +type Kicks map[Rotation][]Point + +var K3CW = Kicks{ + 0: {{X:0, Y:0}, {X:-1, Y:0}, {X:-1, Y: -1}, {X:0, Y:2}, {X:-1, Y:2}}, + 1: {{X:0, Y:0}, {X:1, Y:0}, {X:1, Y: 1}, {X:0, Y:-2}, {X:1, Y:-2}}, + 2: {{X:0, Y:0}, {X:1, Y:0}, {X:1, Y: -1}, {X:0, Y:2}, {X:1, Y:2}}, + 3: {{X:0, Y:0}, {X:-1, Y:0}, {X:-1, Y: 1}, {X:0, Y:-2}, {X:-1, Y:-2}}, +} + +var K3CCW = Kicks{ + 1: {{X:0, Y:0}, {X:1, Y:0}, {X:1, Y: 1}, {X:0, Y:-2}, {X:1, Y:-2}}, + 2: {{X:0, Y:0}, {X:-1, Y:0}, {X:-1, Y:-1}, {X:0, Y:2}, {X:-1, Y:2}}, + 3: {{X:0, Y:0}, {X:-1, Y:0}, {X:-1, Y: 1}, {X:0, Y:-2}, {X:-1, Y:-2}}, + 0: {{X:0, Y:0}, {X:1, Y:0}, {X:1, Y: -1}, {X:0, Y:2}, {X:1, Y:2}}, +} + +var LCW = Kicks{ + 0: {{X:0, Y:0}, {X:-2, Y:0}, {X:1, Y: 0}, {X:-2, Y:1}, {X:1, Y:-2}}, + 1: {{X:0, Y:0}, {X:-1, Y:0}, {X:2, Y: 0}, {X:-1, Y:-2}, {X:2, Y:1}}, + 2: {{X:0, Y:0}, {X:2, Y:0}, {X:-1, Y: 0}, {X:2, Y:-1}, {X:-1, Y:2}}, + 3: {{X:0, Y:0}, {X:1, Y:0}, {X:-2, Y: 0}, {X:1, Y:2}, {X:-2, Y:-1}}, +} + +var LCCW = Kicks{ + 1: {{X:0, Y:0}, {X:2, Y:0}, {X:-1, Y: 0}, {X:2, Y:-1}, {X:-1, Y:2}}, + 2: {{X:0, Y:0}, {X:1, Y:0}, {X:-2, Y: 0}, {X:1, Y:2}, {X:-2, Y:-1}}, + 3: {{X:0, Y:0}, {X:-2, Y:0}, {X:1, Y: 0}, {X:-2, Y:1}, {X:1, Y:-2}}, + 0: {{X:0, Y:0}, {X:-1, Y:0}, {X:2, Y: 0}, {X:-1, Y:-2}, {X:2, Y:1}}, +} |