Skip to content

Latest commit

 

History

History
17 lines (12 loc) · 1.75 KB

README.md

File metadata and controls

17 lines (12 loc) · 1.75 KB

Ruby Chess

This is my repository for the Chess capstone project from the Ruby path of The Odin Project.

Key Learning

This project was an excellent challenge. At this point in my development journey, I had not yet written such a complicated application. Utilizing classic problem solving techniques, I was able to complete this program by writing plain old Ruby objects.

  • One achievement was only tangentially related to Ruby and programming: I finally learned how to play Chess.
  • One challenge that I was able to successfully overcome was the complexity of abstractions and interactions that this project required. Chess has many rules and my initial planning did not go far enough on the abstractions which caused some challenges down the road. While it was a painful lesson, coming up with a solution that aided with final integration was very satisfying.
  • I am very happy with the way the testing suite came together for this application. I was just starting to get comfortable with RSpec, but having a robust testing suite was very helpful when figuring out how to validate the more complex Chess rules while I was re-thinking my design approach and abstractions.

Future Opportunities

  • Consider implementing a PGN-like game history inside the Chess class.
  • Three fold repetition implementation starts with "import state" and is only accurate while the game is in progress. If a game is imported from FEN, previous positions are not tracked as part of the current three fold repetition implementation.