Tetris is one of the world’s greatest games. Perhaps one of the reasons Tetris is such a ubiquitous computer game is because you don’t need a particularly high resolution display. You might even say it works better at low resolutions. Perhaps this is what John was thinking when he filled a table with neopixel-like LED strips to create a large low-res display for playing Tetris. If this looks familiar, perhaps you spotted it at the Derby Maker Faire.
John built the table himself from scratch and even gave it York Hackspace branding. He has ten LED strips running the length of the table. They are neopixel-like LEDs which chain together to form a single individually-addressable strip. The ten strips are wired together as one continuous line, snaking its way from one side of the table to the other.
The inside of the table is mostly hollow. The LED strips are stuck to the base and point up towards the perspex lid. To separate the LEDs and make sure that they each illuminate only a small square just above them, John has added a grid of foam walls.
The game is written in python and is running on a Raspberry Pi 2. John’s built a small board with an IO expander for driving the LEDs and reading the buttons.
Of course, there is nothing restricting the table to just running Tetris. At the last hackspace open evening, Nick had a go at writing a snake game. The controls for snake are not so intuitive when you just have four buttons in a straight line, but that adds an element of challenge to it. You can try any of the games or write your own using the tetris table simulator that John wrote as part of this project. All the code for playing in the simulator or on the real hardware is available on github: https://github.com/choffee/tetris_table
Write your own Tetris table games! John will be thrilled to see your pull requests. With potential for two player games, you could get quite creative.
On the subject of creativity, I’ll leave you with this photo of “The Lucky Penny” that definitely isn’t in a hole that was drilled in the wrong place.