2010 Computer Stratego World Championship
From StrategoUSA
The 2010 Computer Stratego World Championship will be held during December. This will be a free tournament open to any programmer whose application supports the Stratego AI API and abides by the game rules.
The tournament will be hosted by Metaforge (http://www.metaforge.net), an online, multiplayer gaming site. Bots will play each other by means of the Metaforge client, exactly as do humans. Viewers will be able to logon to Metaforge and watch games as they are played, or replay completed games at a later time.
Contents |
[edit] Objective
The goal of the tournament is to encourage development of increasingly superior Stratego artificial intelligence implementations. The game is rich for research into game play and decision making with limited information, and we hope that gathering the best implementations available will foster collaboration and increase quality. The tournament also seeks to promote the popularity of the game in general.
[edit] Committee Members
These are the members of the tournament committee:
Vincent de Boer
2007 World Champion "human" Stratego &
Author of Invincible
vdeboer_nl@yahoo.com
Imer Satz
Author of Probe
imer@imersatz.com
Chip McVey
Founder of Metaforge
chip@metaforge.net
Sven Jug
Author of Master of the Flag
sven_jug@yahoo.com
[edit] Tournament Rules
The tournament will consist of ten games between each pair of participating programs. Scoring will be as follows:
| Win | 6 |
| Draw | 3 |
| Loss | 1 |
| Forfeit | 0 |
A forfeit will result from a program crash, illegal move, illegal setup or other condition that terminates the game abnormally.
This is the official Stratego tournament scoring, which is equivalent to (W-D-L) 5 - 2 - 0 with 1 point for playing, or 1 - 0.4 - 0 with 0.2 points for playing. This gives a small drawing penalty (draw is valued less than half a win) which should promote aggressive play.
If, at the end of the tournament, two programs have equal scores, their point totals from the final session will be used as a tie breaker, followed by the previous session and so forth. This will reward improvements programmers have made during the tournament by placing greater value on the later sessions.
Each game will be played according to the game rules below.
[edit] Game Rules
The games will be played according to the standard Stratego rules, with range attacks enabled (scouts can attack during a range move).
[edit] Time Limit
The maximum time limit per move is 15 seconds. The average time per move should not exceed 5 seconds.
[edit] Move Limit
At 2,000 moves, a game will be declared a draw.
[edit] Two-Squares Rule
Literally from the ISF rules http://www.isfstratego.com/images/isfgamerules.pdf
10.1 It is not allowed to move a piece more than 3 times non-stop
between the same two squares, regardless of what the opponent
is doing. It does not matter whether a piece is moving and
thereby attacking an opponent’s piece, or just moving to an
empty square. Note: This rule was officially changed by the ISF in 2010. The previous limit of 5 moves between 2 squares was replaced by this rule.
In pseudocode this would be:
method breaksTwoSquareRule(move)
limit := 3
for(count := 1 ; count <= limit ; count++)
prevmove := getMove(current-2*count)
if( !equal(move,prevmove) && !reverse(move,prevmove) )
return false
return true
method equal(move1,move2)
if(move.toField==move2.toField && move.fromField==move2.fromField) return true
else return false
method reverse(move1,move2)
if(move.fromField==move2.toField && move.toField == move2.fromField) return true
else return false
This rule must be implemented to participate in the tournament. However, Article 10.2 of the ISF rules, which pertains to scout moves, will not be enforced.
[edit] More-Squares Rule
Literally from the ISF Rules http://www.isfstratego.com/images/isfgamerules.pdf
11.1
It is not allowed to continuously chase one or more pieces of the
opponent endlessly. The continuous chaser may not play a
chasing move again more which would lead to a position on the
board which has already taken place.
11.2
Exception: chasing moves back to the square where the chasing
piece came from in the directly preceding turn are always
allowed as long as this does not violate the Two-Squares Rule
(Three-Moves-on-Two-Squares).
11.3 Definitions:
- continuous chase: the same player is non-stop threatening one or more pieces of his opponent that is/are evading the threatening moves.
- chasing move: a move in a continuous chase that threatens an opponent’s piece that was evading during the continuous chase.
Hereby:
- a/to move: a/to move plus attacking or a/to move to an empty square.
- to threaten: to move a piece next (before, behind or besides) a piece of the opponent.
- to evade: to move a piece away promptly after it has been threatened.
Pseudocode for the official More-Squares Rule:
forbiddenPositions := new List //this list contains all board positions that you are not allowed to create again
method isAttackingMove(move)
if (move involves combat) return true
else return false
method breaksMoreSquareRule(move)
// if combat, then there is obviously not a chase
if(isAttackingMove(move)) return false
// if we're moving opposite of last move, that is the
// domain of the two square rule
if(reverse(move,myLastMove)) return breaksTwoSquareRule(move)
// perform the move - update board state based on move - to allow testing validity
board := performMove(board, move)
// if the board state is in the forbidden list, then it's not valid
if(forbiddenPositions contains board.hash()) valid := false
else valid := true
// unperform the test move we just made
board := unperformMove(board, move)
return !valid
method doMyMove(move)
// if it doesn't break the rule
if (!breaksMoreSquareRule(move)) {
...code for executing move...
// add all board positions after your own moves to the forbidden list
forbiddenPositions.add(board.hash())
// record my last move
myLastMove := move
}
method doOpponentMove(move)
// if opponent is not running away from us...
if(!nextTo(myLastMove.endField,move.startField)
// empty forbidden list when opponent doesn't move from a field
// next to where our last move ended
forbiddenPositions := new List
...code for executing move...
This rule must be implemented to participate in the tournament.
[edit] Anti-Chase Rule
A piece may not chase the same opponent piece for more than 5 moves in a row. A chase is defined as a non-combat move, where the end location is next to the location of the corresponding opponent piece.
[edit] Tournament Roster
[edit] Probe
Defending 2007 & 2008 Computer Stratego World Champion
| Programmer | Imer Satz |
| Nationality | American |
| Year Created | 1983 |
| Last Update | 2009 |
| Company/Affiliation | Imersatz GmbH |
| Link | http://www.probe.imersatz.com/ |
[edit] Master of the Flag 1
| Programmer | Sven Jug |
| Nationality | German |
| Year Created | 2004 |
| Last Update | 2008 |
| Company/Affiliation | Jayoogee.com |
| Link | http://www.jayoogee.com/ |
[edit] Master of the Flag 2
| Programmer | Sven Jug |
| Nationality | German |
| Year Created | 2004 |
| Last Update | 2010 |
| Company/Affiliation | Jayoogee.com |
| Link | http://www.jayoogee.com/ |
[edit] Reveal Your Rank!
| Programmer | Raimonds Rudmanis |
| Nationality | Latvian |
| Year Created | 2001 |
| Last Update | 2006 |
| Company/Affiliation | None |
| Link | http://www.yellowgames.com/ |
[edit] Zixerqath
| Programmer | Matt Stowe |
| Nationality | American |
| Year Created | 2008 |
| Last Update | 2010 |
| Company/Affiliation | None |
| Link | http://mattstowe.webs.com/ |
[edit] Schedule
The tournament games will be held between 12/1/2010 and 12/31/2010. Each participant is responsible for scheduling the games against each of the opponents.
[edit] Game Results
All results are captured on the Game Results Page
