Chess
Github Repository
Objective
To check how much I understand rust by doing a side project using what I learned in the book.
Review
This is my very first rust project. Implementing chess program was harder than what I initially thought, especially implementing special rules like En passant, Castling, and Promotion gave me headaches.
On the other hand, through this project I solidify my understanding of ownership of rust. For me, who has a C# background only, ownership was an issue that I seemed to understood but did not fully understood.
This was a time to become more familiar with smart pointer while using Refcell and Box. But I think I still need to study smart pointer more. And the concept I still don't understand is lifetime and concurrency. I hope I can address this in my next Rust project.
Overall it was a fun project. Yet, at first, having to learn the rules of chess was annoying and time consumming. This is the same no matter what project we are working on. If you jump into a project without understanding the business logic, large-scale modifications will be required along the way.