Tetris
Take a break, play a game! Tetris
It was a fun project, never wrote games before. Ok not quite true, I wrote one game in Delphi in 2000 🤦♀️ That was loooooong time ago. Maybe I need to reimplement that game in javascript.
Game is written in JavaScript and Jest is used for tests.
It was funny how I struggle at the beginning to setup the environment. Missing those times when you had plain javascript and index.html. Double click on index.html and see the result.
This time I wanted to use Jest and write tests. And write modules. And it didn’t work smoothly from the first try.
I used
module.exports.Tetris = Tetris;
and
const { Tetris } = require('./Tetris');
The reason why I used require but not exports and imports - jest worked with require statements right out of the box. And I didn’t want to spend much time figuring out how to setup webpack and babel or whatever is needed to setup the project. Fast and simple please. And TDD ✅.
And of course, require statements don’t work in browser. browserify came to the rescue. In simple words it adds require and module functionality to bundled file.
The next issue was: if you simply double click index.html with bundled js files - you will receive the following error:
To fight that one you will need some server running. I used ruby oneliner
ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 9090, :DocumentRoot => Dir.pwd).start'
After that, you have a nice localhost:9090 up and running.
That’s pretty much it for environment setup. Source code is available on github.
Fun with Flags 😄 Tetris