The Connect 4 bot
To see the method in action, let's implement AlphaGo Zero for Connect 4. The game is for two players with fields 6×7. Players have disks of two different colors, which they drop in turn into any of the seven columns. The disks fall to the bottom, stacking vertically. The game objective is to be the first to form a horizontal, vertical, or diagonal group of four disks of the same color. Two game situations are shown in the following diagram. In the first situation, the first player has just won, while in the second, the second player is going to form a group.
Figure 23.2: Two game positions in Connect 4
Despite its simplicity, this game has 4.5*1012 different game states, which is challenging for computers to solve with brute force. This example consists of several tools and library modules:
Chapter23/lib/game.py
: A low-level game representation that contains functions to make moves, encode, and decode the game state, and other game-related...