Javascript

Javascript is the first language we offered. Hence, there already are a lot of javascript bots to compete against.

Scribd has an open-source standalone testing framework available for download that you can use for developing and testing your bot.

Javascript bots are executed using Mozilla Spidermonkey (1.8.5).

 

Python

Python bots are executed in Python 2.7.3. Right now, you have the math module available. More modules soon.

Python programs execute in a sandbox. (See cagekeeper)

Many system-level operations (like opening files, reading from sockets etc.) are disabled. If a bot triggers any of these operations, it will be terminated. This can hit you if you try to import modules, as that will cause Python to access to local file system. Only use the import modules that are listed above.

 

Ruby

Ruby bots are executed in Ruby 1.8. More documentation coming soon.

 

Lua

We also support Lua. This language is somewhat experimental (in particular, there's no standalone framework for it yet.)

Notice that the board array starts at (0,0) for conformity with the other languages, not at (1,1) like arrays in Lua usually do.

The API functions are named the same as in Javascript, so a trivial Lua bot might look like this:

function new_game()
    trace("new_game called");
end

function make_move()
    trace("make_move called")

    if has_item(get_board()[get_my_x()][get_my_y()]) then
        return TAKE
    end

    local random = math.floor(math.random()*4)
    if random == 0 then
        return NORTH
    elseif random == 1 then
        return EAST
    elseif random == 2 then
        return SOUTH
    elseif random == 3 then
        return WEST
    end
    return PASS
end

 

Haskell

Notice: Haskell support is currently disabled. We hope to bring it back soon.

You'll need the standalone framework for Haskell.

Be sure to read the Tutorial on writing a bot in Haskell.

This is a very simple (albeit not very smart) Haskell bot:

makeMove = return EAST