August 5, 2015 Log No. 314
Thrilling Chess 2-Parter
8.4: Started implementing Chess today! From an early age, I’ve always been intimidated by Chess, so never really tried tackling coding it before, but now I see it’s not too bad. (Of course, I’m just talking about the mechanics–the strategy could go on and on. And we’re not really implementing the more idiosyncratic moves, so there’s that.) It’s a nice exercise in Class hierarchy as well, since all the pieces naturally inherit from each other. We even got Unicode to display in our render method, so the board looks semi-legitimate, though the symbols are so small that it’s hard to tell them apart, haha.
Tomorrow we still have to write a checkmate? checker and code up the user input, but can’t imagine that will be too bad. Then, in theory, I should be able to play a game of chess, which I can say I have literally never done before to completion.
8.5: Today marked the conclusion of our 2-day Chess project–the largest/longest we’ve had so far. Overall think we were pretty successful! Got to implementing the Computer AI, and at least now the computer can play as intelligently as I can (which is to say, not very intelligently at all–at the level of a person who learned the game yesterday, aka me).
At least through this project, I think I’ve finally cemented the basic rules of Chess for myself, after 25 years. Imagine my surprise when, after 30-45 min of grueling debugging, we realize the “bug” was from us fundamentally not understanding the game. Aha! Human error at its finest.
Also didn’t fully comprehend how weird the Pawn moveset was until today. Can only capture diagonally? Can hop forward two spaces from the home row but the home row only? But (and we didn’t even implement this, but) can become a queen if it makes it to the other side of the board? Too real. Chess is pretty deep.