Tetronimoes in JavaScript

In 2015 I was just beginning to dip my toes into the world of front-end web development and JavaScript. I had started working at Atlassian and the nature of my role was becoming more and more "full stack" as I worked solo on our Confluence/SharePoint integration, and spent more time within the Confluence code base.

In an effort to become more familiar with JS and the web, I implemented a simple tetronimoes game using not much more than JQuery and CommonJS. The implementation of the game was heavily influenced by my coding experience in strongly-typed, OOP languages (VB.NET, C# and Java). While some things are a bit verbose, I'm overall still fairly happy with the readability and structure of the code.

It's incredible how far JavaScript the language has progressed in the intervening years. Trying to build this game in ES6, TypeScript and React would be a totally different experience (mostly a better one!).

The game itself is functional, but has plenty of rough edges. The user experience for the game is very rudimentary (I was interested at the time on implementing the game mechanics, rather than the UI) and there are a few edge cases in the block rotation logic that can cause blocks to get "stuck" on the side of the playing space.

Perhaps one day I'll come back and make this look a bit snazzier, but in the meantime I present it as-is with no warranties :).

Try it out

A screenshot from my tetronimoes game.