What is Tantrix?
The Story so far
This Month's Ranking
Tournaments
Play Tantrix Now
Problems connecting?

THE BATTLE OF THE BOTS
Tantrix Robot Trio Robot History

In the beginning there were no bots. Players had to rely on an even number of people in the lobby. Or in fact, anyone in the lobby! This was rather frustrating, so a permanent lobby resident - a basic robot player - was built. Once Robot was active, a challenge was laid down to the Tantrix community. Who could build the best Tantrix playing robot? The race was on.

Many took up the task, but fell along the wayside. Finally in 2005 Pieter Bolle from Belgium developed a new-generation robot called Oliver that was rumoured to be playing at Master level. Spurred into action by Pieter and Oliver, Dave Dyer the original creator of Robot, started working on Goodbot and the "Battle of the Bots" was born.
The Ultimate Battle - Man vs. Machine - July 2016 - Winner and currently reigning bot: Darwin

Tantrix has been matching humans against programs for over twenty years, yet no AI had convincingly defeated top players. Until now. Meet Darwin, the best Tantrix robot to date, winner of the "Fourth Battle". So how good is he really? One of the best Tantrix players of all time, Niklas Andersson from Sweden, challenged Darwin to a 9-game match. The challenge was held live in the lobby and marked the end of an era - human supremacy. Welcome to our new robot overlords!

Niklas managed TWO wins and ONE draw from the 9-game series and had it not been for a bizarre mistake by Darwin at the end of game #4, the result could have been more dismal. Two wins at least kept some human dignity alive. So what happens next? Can the top human Tantrix players learn from Darwin's weird but winning style and make a comeback later in the year? Or will Darwin's programmer find further improvements?

The First Battle - May 2005 - Winner: Oliver

The first official robot battle - Goodbot vs. Oliver - was held in May 2005. Pieter Bolle of Belgium and Alex Biryukov of Israel spent months programing their robot challenger and it paid off. Oliver performed outstandingly, defeating Goodbot with a winning percentage of 64.5%. Oliver has been let loose in the lobby and is accepting human challenges.
The Second Battle - Aug 2005 - Winner: Goodbot (Gen. II)

Goodbot however, was not a robot to shirk a challenge and went into training. Three months after the first official battle, a second one was held between Oliver and an improved Goodbot. Goodbot regained the championship title by defeating Oliver with a winning percentage of 54.7%. The rematch of 200 games took a total of 6 hours, running on 6 computers simultaneously. Both robots are in the lobby, ready and waiting for human opponents.
The Third Battle - Nov 2011 - Winner: Monte

It took a lengthy 6 years for the next challenger to come along, but eventually at the end of 2011, Pete Bruns presented his new robot "Monte". Pete's robot is built after a new and different model, the Monte Carlo method. Would this approach be able to beat Goodbot?

In one word, YES. As always, the challenge was a round of 200 games. It took 27 hours and Monte crushed Goodbot convincingly (58.5% wins, 36% losses, 5.5% draws). At the end, Monte was showing no signs of fatigue and is now camped in the lobby ready for you to test his mettle. He plays under the name of Fullmonte (30 seconds per move), while his little brother plays under Monte (15 seconds).
The Fourth Battle - May 2016 - Winner: Darwin

Darwin's Evolution Five years after Fullmonte defeated Goodbot in the quest for robot supremacy, a new challenger called Darwin arrived on the scene.

Created by German developer Simon Buhr, Darwin uses the same basic method as FullMonte, but a significantly faster engine and an additional learning approach. The challenge was watched live by an audience of millions (well, not quite), but the spectacle went down in the lobby on two machines and taking about 15 hours.

The results were impressive, a new champion now reigns supreme. Out of 202 games between Darwin and FullMonte, Darwin won 143 (70.8%), lost only 50 (24.8%), while there were 9 draws (4.5%). And yet Darwin only uses around 5 seconds per move!

Keen to build the next challenger?

Over the years, we have had a number of requests to publish Robot's interface. So we put together a "Robot kit" which provides all the information needed to program your own robot. With this kit, you can write the code at your leisure, and get back to us when your robot is ready. When submitting your robot for challenge, you will be agreeing to provide us access to the source code and allow us to run the robot on Tantrix.com. At that stage, we will organise a Defender vs. Challenger series against the reigning robot champion.


The time frame for the robot challenge is indefinite. Start anytime, and take as long as you like. At stake are bragging rights to have unseated the reigning robot. Fame, glory and immortality will be yours!


Battle matches

A "Battle of the Bots" match is scored the same as is customary in human tournaments. Overtime penalties apply. In the case of a crashed or unfinished game due to hardware or software issues (other than the robot itself) we just resume the game. Crashes due to bugs in the robots are scored as zero TPs for the crashed robot. The match is restarted from the beginning if any software changes are made. The challenge runs on the public server and the public is invited to spectate on games in progress.

The Robot Kit


The kit is supposed to be sufficient for a smart java programmer to develop their own Robot. The assumption is that you want to do an honest, complete and unassisted Robot, but would like all the other details of integrating the Robot into the Tantrix system to be handled for you. You will find parts of the documentation below, but not the kit itself. To obtain the whole information pack, please email us.

Installation and Setup

Tantrix Robot In general, the files can be installed anywhere that is convenient. The main components are:
  • The "jar" files contain the bulk of the Tantrix applet; no special secrets here, just a copy of what every web browser downloads from Tantrix.
  • The "class" hierarchy. This contains some extra java classes which are not normally included in the jar files.
  • The "bfms" hierarchy which contains the sound files used by the applet.
  • The hierarchy "twister" contains your experimental Robot.
  • The file "ExpBot.html" is the key file which launches the applet and ties it to your local Robot.
  • The documentation in the "doc" hierarchy.
The Sample Robot

The "Twister" folder contains a stub which will become your Robot. The stub is invoked, when a Robot move is required, with enough information to allow you to determine the state of the game. There's a callback function you can call with your move. All the networking and running of the regular Robot is handled by the classes supplied as they would be in the real game.


package twister;
import online.tantrix.common.*;
import online.common.*;
import java.awt.*;
public class DummyBot implements RobotProtocol
{ commonGame game = null;
  /** initialize the robot, but don't run yet */
  public void InitRobot(commonGame g,String evaluator,int stragegy)
  { game=g;    //we'll need this
    System.out.println("Init from "+g+" with "+evaluator+":"+stragegy);
  }
  public void StartRobot(boolean continuous) {};
  public void StopRobot() {}
  public boolean Running() { return(false); }
  public boolean RobotPlayerEvent(int x,int y,Rectangle startrect) { return(false); };
  public void DoPlayerQuit() {};
  public void DoGameOver() {};
  public void Quit() {};
 
 
  public void DoTurnStep(commonPlayer p)
  {
    RootAppletProtocol root = game.theRoot;
    // this shows how to get parameters from the launching html file
    System.out.println("Parameter: jdk "+root.get("jdk"));
   
  System.out.println("Now Make a Move for color "
      +p.color+" rack position "+p.index);
  System.out.println(game.b.rackSummary());
  System.out.println(game.b.boardSummary());
 
    // game.b is the GameBoard
    // game.players[] is the list of commonPlayer.

    // this is a handy trick to let the robot run until a certain point
    // if(board.tilesOnBoard>=stop_at_ntiles) { continuous=false; }
 
    // to make a move
    // game.commitToTile(x,y,tidx,orient);
    };
}
The files

The above is part of the documentation that comes with the Robot kit. This kit is not available for download, but if you are interested in writing your own Robot, please email us and let us know a few details about yourself. For example, how much experience you have in java programming, how long you are expecting to take for this project and why writing a Tantrix Robot appeals to you. We'll be happy to email you back the zipped package.
Technical Info

Fortunately for those who want to participate but do not want to start from scratch, Pieter Bolle has released 'Open Oliver' to the java savvy public.

The source code and all the bits a java programmer would need to program their own robot can now be found on his site at sourceforge.net Open Oliver supplies you with a foundation that you can tailor depending upon your own preferences and skill level. Feel free to mix and match bits from Dave Dyer's robot kit and Pieter Bolle's Open Oliver.

Pete Bruns has released his report on FullMonte and the success of the Monte Carlo method in programming a Tantrix robot.
Simon revealed how he turned Fullmonte into Darwin in "Techniques to improve the performance of Monte Carlo Tree Search".

© Copyright 2021, Colour of Strategy Ltd, Pohara, New Zealand. All rights reserved.
Last update: October, 2021