Checkers

Checkers Game

A couple months after I finished my Connect Four project, I decided that my goal was to code a chess program. To me, the natural first step was to first code a checkers program. So after brushing up on the rules of checkers again (can’t say it was ever my favorite game), I began adapting my Connect Four code. I was challenged by the development of efficient JavaScript code for generating legal checkers moves, and I spent a while researching checkers strategy for my heuristic rating function.

Since I had most of the basics already figured out, I decided to start experimenting with optimizations that I would later implement in my chess program. I researched the minimax algorithm I was implementing, and learned about Alpha Beta pruning, which is a way to cut out branches of the decision tree while returning the same result. It wasn’t too much of a challenge to implement, however without also implementing move-ordering, it didn't yield too significant of an upgrade. I decided to leave it for the chess program. I already had a program that could beat me almost every time in checkers.

Immediately after finishing the checkers program, I began working on chess. After a few days of gruesomely attempting to code all of the specific rules of chess, I decided that I was not nearly experienced enough yet to get a satisfactory program out of it, especially limited to JavaScript. Since I was getting ready for college at the time, I decided I would leave it for when I had time to learn a more powerful compiled language like C++ (especially since I had just learned about web assembly) so I could make something that could put up a challenge.

javascript
html5
css3