ctak, ctaklm, and ct1986
Overview
- ctak is a C library for the game of Tak
- ctaklm is a line-mode interface to ctak and a computer opponent (for 5x5 and 6x6)
- ct1986 is a similar interface, but designed for a Raspberry Pi Zero running buildroot and displaying output on a character LCD.
- cttei is a TEI-speaking game engine for use wherever TEI is accepted.
- geminict is a special adaptation of ctak for use in a gemini CGI web-server.
Building for the native platform
make native
Building for the Raspberry Pi Zero
Download and extract a recent version of buildroot into the working directory. Edit BUILDROOT_DIR=buildroot-2020.11.1 in Makefile to point to the extracted directory.
make pi
The computer opponent
Standard adversarial tree search (α-β negamax) with iterative deepening, using a neural network evaluation function for leaves and also a transposition table keyed on the Zobrist hash.
The architecture of the neural network is a standard, two-layer dense network which is trained exclusively through self-play using td-leaf (see src/nn_train.py). As input the network is fed the top layer of the board only as well as flats used/flats remaining fractions for both players and a single float indicating the parity of the board.
License
GPLv3+
