Fork me on GitHub

Your browser appears to be unsupported!

Lightbot is a strategy and thinking game in which you have to use programmer-style logic to tell a robot how to light up all the blue tiles in a level. It has been developed using JavaScript and HTML5 features, many of which are not supported by older browsers.

Current supported browsers are:

Developed by Laurent Haan. Interface by Zenobia Homan. Robot by surt. Music by hektikmusic. Original concept:


Goal of the game

In order to complete the game, you have to tell the robot how to light up all the light tiles in a given level. However, your only way of interacting with the robot is by assembling instructions into a program that the robot can execute.

How to play the game

You can create a program by dragging instructions from the instruction list and dropping them into the program frame. The instructions will automatically be added to the bottom of the highlighted block.

Execute your program by clicking the Run button. If you are not satisfied with your current program, you can interrupt the execution at any moment by clicking the Stop button. This will reset the robot to his initial position.

Game objects

A level is made up from gray tiles which have a certain height. Special light tiles are scattered throughout the level. These light tiles can either be blue, which means that they are unlit, or they can be yellow, which means that they are lit. If at any given moment, all the light tiles in a level are lit, you have completed that level.

Instruction: walk forward

When walking forward, the robot will will advance one square in the direction it is currently facing. This movement will only be performed if the space it would be heading into is of the same height as the square it is moving out from. In any other case the movement will not be performed.

Instruction: Turn 90° to the right

When turning 90° to the right, the robot will stay in place and turn 90° (a quarter turn) to the right (clockwise).

Instruction: Turn 90° to the left

When turning 90° to the left, the robot will stay in place and turn 90° (a quarter turn) to the left (anti-clockwise).

Instruction: Jump

Jumping is a combination of a move forward and a change in height. The direction of the movement is in the direction that the robot is facing. An upward jump is only successful if the destination tile is higher by exactly one step than the starting tile. If the height difference is bigger than one, the jump is not successful and no movement is performed. When jumping down, there is no limit to the height the robot can jump down from. The only condition is that the difference in height is at least one.

Instruction: Light

The light instruction can be used to toggle light tiles on or off. If the robot is located on an unlit light tile when the light instruction is executed, the light tile will be toggled on. However, if the robot is located on an already lit light tile, that light tile will be toggled off. When the robot is located on a normal tile, nothing happens.

Instruction: Repeat

The repeat instruction is a special instruction that can be used to repeat some instructions a certain number of times. The repeat instruction has a special frame where you can drop instructions from the instruction list. It also has a counter where you can define the number of times the instructions within the repeat instruction will be repeated. It is even possible to place a repeat instruction within a repeat instruction, which is essential for creating very small programs.


Medals are rewarded for completing levels with only a very small amount of instructions. Sometimes, these small programs make the robot execute a lot of useless instructions, which is very inefficient and takes a lot of time. Please be aware that in computer science, the best program is not the one that contains the least amount of instructions but the one that has the robot execute the least amount of instructions.

Level select


  • Walk forward

  • Turn 90° to the right

  • Turn 90° to the left

  • Jump

  • Light

  • Repeat times

    • Drop your instructions here


Project hosted by the Lycée Guillaume Kroll. Level 15 by Ciro and Mateo.

Congratulations! You have completed this level using instructions!