Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I attempted to do a faithful port of the logic for the most part. In particular, there's a clever base-6 encoding of move history that allows games to be stored as integers in a "losing book" array, which allows the AI to become stronger over time. I did not change this logic, as I felt that the cleverness of this solution is worth observing. I endeavored to make every variable clearer, and use functions to help make program flow easier to understand.
I did make one small change to the logic, which I also documented clearly, having to do with evaluating very large moves. The code, as originally published, looks like a typo to me, but with BASIC, it's hard to be certain.
Also, I'm bad at this game; the computer beats me almost always.