LiveScript (JavaScript) implementation of robocode, original from
Switch branches/tags
Nothing to show
Clone or download


LiveScript (Javascript) implementation of Robocode. Original from

Creating a robot is even simpler


class TestRobot1 extends BaseRobot
  onIdle: ->
    @turn_turret_left 30
    @move_forwards 100
      if Math.random! > 0.5
        @turn_right 30
        @turn_left 30

  onWallCollide: ->
    @move_opposide 10
    @turn_left 90

  onEnemySpot: ->

  onHit: ->
    for d from 20 to 30
      @move_backwards d
      @turn_right d

bot = new TestRobot1("My test robot")


  onEnemySpot: ->
    @my-var = @enemy-spot # remember it

TODO: need more bot actions and callback events


Available info:

  • Self info

    • @me.x
    • @me.y
    • @me.hp
    • @me.angle - Your current angle (tank angle + turret angle)
    • @me.tank_angle
    • @me.turret_angle
  • Enemy info

    • @enemy-spot[N].id
    • @enemy-spot[N].hp
    • @enemy-spot[N].angle - The angle (direction) to the enemy

Sequential Actions:

  • @turn_left (angle)
  • @turn_right (angle)
  • @move_forwards (distance)
  • @move_backwards (distance)
  • @move_opposide (distance) - This action can only be used in OnWallCollide()

Parallel Actions:

  • @turn_turret_left (angle)
  • @turn_turret_right (angle)
  • @shoot()
  • @yell(message)


  • OnIdle() - Triggered when idle (MUST implement)
  • OnWallCollide() - When the tank collide the wall
  • OnHit() - When hit by a bullet
  • OnEnemySpot() - When your turret is directly face to an enemy (there seems no reason not to fire!)

Build from LiveScript

  • To compile from LiveScript, first, install nodejs from
  • Second, make sure you got npm and run command exetable on your console. (If you are on MS Windows, make sure the PATH environment variable is setting correct to run npm and node)
  • If you have make command, i.e. on Linux or Mac OSX, just go to the repository root directory and type make, everything will be done.
  • If you do not have make command, run the following command manually. (haven't test on MS Windows.)
    • npm install
    • node_modules/.bin/lsc -c *.ls
    • node_modules/.bin/lsc -c -b
    • node_modules/.bin/lsc -c robot/*.ls
  • Done. Use your browser to open index.html file.

Run directly without compiling anything

  • switch to gh-pages branch, you will got everything to run this program.

    git checkout gh-pages


  • google-chrome is not allow to run a web worker of a local javascript file. Please use the --allow-file-access-from-files option to start chrome. If you run this project on a web server, this won't be a problem.


  • Source Codes: MIT
  • ARTs: Eclipse Public License (EPL).
  • Read LICENSE file for detail


  • Thanks Guyon at Gumuz for this great project.
  • Thanks to Martain Chen, Tim Chen, BinBin Tasi, Sid Wang, Louh Ren-Shan and 豬大寶 for mathematic support.