Tantrix in Your Country
Tournaments
Tournament Forum
Need Help?
QUICK LOGIN

N : 
P : 
Not registered?

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 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. But then rumors abounded that Pieter Bolle was developing a robot called Oliver and that he might just play at Master level.

Word of this got to the original creator of Robot. Not to be outdone by Pieter, Dave started working on Goodbot. Before we knew it, there were two! A battle for the title of "Best robot" was inevitable.

The First Battle - May 2005

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... if you dare!
The Second Battle - Aug 2005

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

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).
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" hierchy 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 also released his report on FullMonte and the success of the Monte Carlo method in programming a Tantrix robot.

Copyright 2011, Colour of Strategy Ltd, Nelson, New Zealand. All rights reserved.
Last update: November, 2011