Back to Projects

Chess (CLI)

The board game chess, implemented in a command-line interface and built with Ruby.

Chess program with command-line interface

This was the final project of The Odin Project’s Ruby course.

I read Practical Object-Oriented Design: An Agile Primer Using Ruby by Sandi Metz. Before starting this project. I tried to implement clean design using principles from the book. I also worked closely with a mentor I met through First Ruby Friend while working through this project. They reviewed areas that I had uncertainties about as well paired with me. Their feedback was invaluable.

This project included lots of automated testing. While it was not built strictly using TDD (test-driven development), I sometimes used tests to help guide development and also made sure to write tests for core features.

I refactored some parts of this project numerous times. I also used it for experimenting with topics I was reading about in my free time. For example, I refactored the piece movements to utilize the null object pattern after reading about it. Another example was using a pipeline to process special moves such as castling.

Overall, this project was an excellent learning experience and gave me confidence in my Ruby and my problem-solving skills.