I had 2 use cases for the matrix:
- Using the matrix as a canvas at events – letting kids create images and animations to show on the matrix. Ex:bit is perfect for this (or will be, when adapted).
- Using the matrix as a screen – outputting the visuals from another app. The 1000 micro:bit matrix had been used for Space Invaders and it looks good, so the bar is set quite high!
My hope was that I could use the same node code for both use cases, and the code discussed in chapter 3 already ticked off the first use case.
To test the second use case I set out to build a version of Tetris.
This was one of my most fun projects with Python, and I remember fondly the lengths I went to to squeeze it all onto 1 micro:bit. Many sessions were sent shaving a fraction of memory use off to allow me to add new functionality. The current version only has 5 different block shapes. due to memory constraints, and is missing an element of collision detection for the same reason!
Obviously the micro:bit screen is just not an option for Tetris, and I did not actually have a matrix assembled to test it on. So, I decided to use REPL to test the output – each new ‘screen’ would be output to REPL as a print. I had to call it ‘reptris’:
Above: As the shape descends it is represented by the number 7 – zeroes are shown to represent empty spaces on the grid.
Above: As the shapes come to rest at the bottom they are represented by “1”
I didn’t plan to release reptris (although I did – its here on GitHub) – the idea was to adapt it to run over the matrix. I just couldn’t resist releasing it though, because:
- It was so bad it was, well, very bad. But in a good way – using REPL to output each frame – heh!
- It was tetris, on a micro:bit, written in Python. Don’t knock it till you’ve tried it!
- During the process of developing it I realised that it could not work on the same node code as Use Case 1 – I would need to adapt the code specifically for Tetris. I chose to focus on the first use case, then maybe revisit Tetris at a later time.
So, after a bit of a diversion it was back to the matrix…
The micro:bit matrix saga currently consists of 6 chapters: