Ataxx information site

This website is all about Ataxx.
Well, mostly Ataxx AI and how to let it battle against other programs.

AI?

AI is short for artificial intelligence - a computer is then performing a task as if it were performed by a human brain.

Ataxx?

Ataxx is a board-game. A rather complete description can be found on wikipedia.

So what is this site then?

This site is about Ataxx-AI: how to write your own Ataxx-AI and how to let it play against other Ataxx games.

communication

A program needs to speak to the outside world. For that it can have a graphical user interface (GUI), a text-interface or socketcommunication.

To be able to talk to other programs, it complicates things if it only has a GUI.

UAI

Usually Ataxx programs use the UAI protocol. UAI is a derivative of the UCI protocol (used for chess programs).
The changes are the format of the FEN-string, the format of the move-string, and the notation of the initialize-commands; that's it!

Where a chess program would respond to "uci", an Ataxx program listens for "uai" (it tells the program to use the UAI protocol).
To start a new game, the board sends "uainewgame".

Moves are in the format 'xy' or 'xy-xy'. E.g. "bestmove a2" or "bestmove a1b2". A pass is written as "bestmove 0000".

FEN strings (the textual representation of the board) is like in UCI: board-text turn halfmoves fullmoves. For a description, see this wikipedia-page.
The difference is that we only have two types of pieces - stones -: a red (white/player-1, 'x') and blue (black/player-2, 'o') one.

testing

To get reasonably sure that a change that you made to your Ataxx program increases its strength, you need to let it play a lot of games against other programs (think in the order of 15000 games). Then determine the elo-rating and use that to see if change improved things.

To determine the elo-rating, you can let your program output PGN-files (cuteataxx and acraps can do this for you). Then process the pgn-files using Ordor or Bayesian-Elo.

There are two programs that allow you to automatically perform test-tournaments:

URLs

libraries

These are two libraries that may help you write an Ataxx program. They take away the hassle of generating move-lists, board representation, and so on.

open source Ataxx "engines"

techniques

Best results sofar are with alpha/beta tree search program. Other techniques are MCTS.

Other algorithms from other board-games that apply to Ataxx are late move reductions, transposition tables (and thus Zobrist hashing) and iterative deepening.

Also see this article at linuxonly.nl.

practice

game servers

On this server, a game server runs as well. Address: server.ataxx.org, port 28028. The exchange of commands + replies is regular ascii terminated with cr+lf.
The First and second line the Ataxx engine send are "user ...", "pass ...". After that the regular UAI protocol commences.
The first time you connect with that username, it is registered with the password you've entered, unless the username already existed; then you will be disconnected. You can make as many accounts for as many programs as you like.
All statistics can be seen at: http://server.ataxx.org/.
The source-code of this server AND an example client-wrapper (enabling you to use a regular Ataxx engine without modifications) can be retrieved from GitHub.

An alternative: GGS is "generic game server" which allows you to play games against others. There's an interface for Ataxx (in C++) available.

discussion

In the ##chessprogramming IRC-channel on freenode.net, there's a lively discussion about Ataxx.

forum

In www.game-ai-forum.org there's a sub-forum specially for Ataxx.

miscellaneous

On thingsesque.com you can play manually the game of Ataxx in a web-interface!

contact?

Anything missing? Something needs clarification? Or your cat is sick and want to talk about it? Send an e-mail to: info@ataxx.org