Acquacchi


          

About

Welcome to playing against Acquacchi!

This is a simple chess interface, where you have unlimited time and Acquacchi has around 3 seconds per move. To make Acquacchi run in your browser, it had to lose some features. If you want to play against the full strength version or play against Acquacchi using any sort of time control, challenge Acquacchi on lichess (if no one challenges Acquacchi for a while, the server automatically shuts down to save costs). To send a challenge, you have to be logged in. Also, Acquacchi will only accept "Standard" and "From Position" variants with "Real time" time control. If the bot is not running, just email me (email on homepage) and I will restart the server!

You can also download the source code from the github, compile it, and run the full-strength version on your own computer.

Good luck!

Engine Output

The console on the right shows what Acquacchi is "thinking" as it searches for the best move. Here's what the output means:

  • score: Position evaluation in centipawns (100 = 1 pawn advantage). Positive favors bot, negative favors you.
  • depth: How many moves ahead Acquacchi is calculating.
  • nodes: Number of positions analyzed.
  • time: Milliseconds spent searching.
  • move sequence: The best line of play found (e.g., "e7e5 d2d4" means e7-e5, then d2-d4).

The engine uses iterative deepening, searching progressively deeper until time runs out. When finished, you'll see:

  • ***!! Acquacchi makes move !!*** The chosen move
  • JSON summary: Final stats for the move (score, depth reached, total nodes, total time)
  • Material count: Remaining pieces (wp=white pawns, bB=black bishops, etc.)
  • Best line: The optimal continuation of moves from this position

Features

If every chess game ended after 3 moves, there would still be 121 million possible games. Because of this, a chess engine has to be very careful with which positions it analyzes and it has to analyze every position quickly. On my macbook pro, Acquacchi searches over 3 million positions per second.

Acquacchi uses a Mini-max search with a lot of optimizations:

  • Alpha-beta pruning
  • Null move pruning
  • Bit-board representations
  • Killer heuristic
  • History heuristic
  • Transposition table
  • Quiescence search
  • Iterative deepening

Why?

Quarantine (also wanted to learn C).