Chess

Project link: https://github.com/Preston12321/chess

This project has been years in the making… I first learned chess in middle school, right around the same time that I started visiting my local library in search of programming knowledge (I didn’t have internet at home and my school never offered a single CS class until the year after I graduated high school). Because I grew to greatly enjoy playing chess with my friends, I thought it would be really cool to make my own implementation of it. And since I started my journey into programming with good ole' HTML, CSS, and JavaScript, it just felt right to use those to build the game.

Over the years, I made multiple attempts at creating my chess game, but all fell just short of the finish line. My very first try used very little CSS and was formatted as a super-ugly HTML table. A couple of later, slightly modified versions looked better, but I wasn’t able to finish the game logic (turns out the game can get kind of complicated). As I grew throughout high school in both skill and experience, I began to piece together the abilities I needed to actually get this thing done! Thus, in my second year of college, I set upon the task once again.

This time, I opted to make my life easy using NodeJS, and while I was at it, I figured I could try out Webpack and Babel to make my project that much more professional and production-ready. I opted for an object-oriented approach to modelling the pieces, but this time I chose a more declarative approach to defining the logic of each piece, which ultimately made the implementation a lot simpler. Leonardo da Vinci once said, “art is never finished, only abandoned,” and when it comes to this project, I certainly agree. There’s so much more I’d love to do with my chess game, like giving it a more fleshed-out UI, making it run in the cloud to support multiplayer, fully implementing unit testing and continuous integration. But I was finally able to actually make the basic game, all by myself, and that’s good enough for me.

For now…

Nifty tech tag lists fromĀ Wouter Beeftink