2009 Computer Stratego World Championship

From StrategoUSA

Revision as of 18:19, 25 June 2010 by Imer Satz (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

The 2009 Computer Stratego World Championship will be held during the week of November 23. 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. This year, all the bots will run on a single computer in a continuous sequence of matches until the tournament is complete. 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 five 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.

[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 5 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.

In pseudocode this would be:

method breaksTwoSquareRule(move)
    limit := 5
    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 (Five-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] Tournament Roster

[edit] Probe

Defending 2007 & 2008 Computer Stratego World Champion

Image:Usa.png Probe
ProgrammerImer Satz
NationalityAmerican
Year Created1983
Last Update2009
Company/AffiliationImersatz GmbH
Linkhttp://www.probe.imersatz.com/


[edit] Master of the Flag 1

Image:Ger.png Master of the Flag
ProgrammerSven Jug
NationalityGerman/American
Year Created2004
Last Update2008
Company/AffiliationJayoogee.com
Linkhttp://www.jayoogee.com/


[edit] Master of the Flag 2

Image:Ger.png Master of the Flag
ProgrammerSven Jug
NationalityGerman/American
Year Created2004
Last Update2009
Company/AffiliationJayoogee.com
Linkhttp://www.jayoogee.com/


[edit] Invincible

Image:Hol.png Invincible
ProgrammerVincent de Boer
NationalityDutch
Year Created2007
Last Update2007
Company/AffiliationTU Delft
Linkhttp://www.kbs.twi.tudelft.nl/Publications/MSc/2008-deBoer-Msc.html


[edit] Reveal Your Rank!

Image:Lat.png Reveal Your Rank!
ProgrammerRaimonds Rudmanis
NationalityLatvian
Year Created2001
Last Update2006
Company/AffiliationNone
Linkhttp://www.yellowgames.com/


[edit] Hobbes

Image:Hol.png Hobbes
ProgrammerMaarten Schadd
NationalityDutch
Year Created2008
Last Update2009
Company/AffiliationMaastricht University
Linkhttp://www.personeel.unimaas.nl/maarten-schadd/Homepage/index.html


[edit] Hayati

Image:Israel_flag.gif Hayati
ProgrammerOmer Weissbrod & Ziv Cohen
NationalityIsraeli
Year Created2009
Last Update2009
Company/AffiliationNone
LinkNone


[edit] Zixerqath

Image:Usa.png Zixerqath
ProgrammerMatt Stowe
NationalityAmerican
Year Created2008
Last Update2009
Company/AffiliationNone
Linkhttp://mattstowe.webs.com/


[edit] Schedule

Round Match Creator Wins Joiner Wins Draws
11Hayati1Zixerqath40
12Hobbes1Reveal Your Rank!40
13Invincible2Probe30
14Master of the Flag 10Master of the Flag 250
21Reveal Your Rank!5Hayati00
22Zixerqath0Probe50
23Hobbes0Master of the Flag 250
24Invincible5Master of the Flag 100
31Hayati1Probe40
32Reveal Your Rank!0Master of the Flag 250
33Zixerqath1Master of the Flag 140
34Hobbes0Invincible50
41Master of the Flag 25Hayati00
42Probe5Master of the Flag 100
43Reveal Your Rank!1Invincible40
44Zixerqath2Hobbes30
51Hayati0Master of the Flag 123
52Master of the Flag 23Invincible20
53Probe5Hobbes00
54Reveal Your Rank!2Zixerqath30
61Invincible5Hayati00
62Master of the Flag 13Hobbes11
63Master of the Flag 25Zixerqath00
64Probe4Reveal Your Rank!10
71Hayati1Hobbes40
72Invincible5Zixerqath00
73Master of the Flag 13Reveal Your Rank!20
74Master of the Flag 22Probe03


[edit] Game Results

[edit] Match Cross Table

Match results are shown as W-D-L in alphabetical order.

AI Program W D L Hayati Hobbes Invincible MasterFlag1 MasterFlag2 Probe RevealYourRank Zixerqath
Image:Israel_flag.gif Hayati 3 3 29 x 1-0-4 0-0-5 0-3-2 0-0-5 1-0-4 0-0-5 1-0-4
Image:Hol.png Hobbes 9 1 25 4-0-1 x 0-0-5 1-1-3 0-0-5 0-0-5 1-0-4 3-0-2
Image:Hol.png Invincible 28 0 7 5-0-0 5-0-0 x 5-0-0 2-0-3 2-0-3 4-0-1 5-0-0
Image:Ger.png MasterFlag1 12 4 19 2-3-0 3-1-1 0-0-5 x 0-0-5 0-0-5 3-0-2 4-0-1
Image:Ger.png MasterFlag2 30 3 2 5-0-0 5-0-0 3-0-2 5-0-0 x 2-3-0 5-0-0 5-0-0
Image:Usa.png Probe 26 3 6 4-0-1 5-0-0 3-0-2 5-0-0 0-3-2 x 4-0-1 5-0-0
Image:Lat.png RevealYourRank 15 0 20 5-0-0 4-0-1 1-0-4 2-0-3 0-0-5 1-0-4 x 2-0-3
Image:Usa.png Zixerqath 10 0 25 4-0-1 2-0-3 0-0-5 1-0-4 0-0-5 0-0-5 3-0-2 x


[edit] Score Summary

AI Program Games Played Total Score Ranking
Image:Ger.png MasterFlag2 35 191 1
Image:Hol.png Invincible 35 175 2
Image:Usa.png Probe 35 171 3
Image:Lat.png RevealYourRank 35 110 4
Image:Ger.png MasterFlag1 35 103 5
Image:Usa.png Zixerqath 35 85 6
Image:Hol.png Hobbes 35 82 7
Image:Israel_flag.gif Hayati 35 56 8