Tribot
Control a triangular robot, or "Tribot", to retrieve some treasure.
Designed for teaching programming, allowing you to use real JavaScript with zero setup and as little boilerplate as possible.
Getting started
Create a file named index.html
on your computer with the following contents:
<script type="module" src="https://unpkg.com/tribot"></script>
<script type="module">
</script>
Then open this file in your favourite modern browser (relatively up-to-date version of Chrome, FireFox, Safari, Edge, etc).
You should see this:

Now you can start programming! In index.html
, replace // Youre code goes here
with the following:
moveForward()
turnRight()
moveForward()
Now save the file, and refresh your browser. Click the "Start" button and watch the Tribot move.
Try editing the code to help the Tribot reach the treasure!
Controlling the Tribot
The following functions are available to control the robot:
moveForward()
moveBackward()
turnLeft()
turnRight()
changeColor(color)
: you can use a named color, eg changeColor('blue')
or a hex color eg changeColor('#800080')
beep()
Change the room
There are 3 preset rooms. By default room 1 is selected. You can instead try putting the Tribot in another room by calling setRoom(roomNumber)
at the top of your script.
For example,
<script type="module" src="https://unpkg.com/tribot"></script>
<script type="module">
setRoom(2)
moveForward()
turnLeft()
beep()
</script>
You can also make your own custom room, for example:
setRoom([
[S,_,_,_],
[W,_,_,W],
[T,_,_,W]
])
Rooms have:
S
: A start position for the Tribot._
: Empty spacesW
: WallsT
: Treasure
A Simple AI Tribot
Instead of manually giving the Tribot instructions for how to get to the treasure, you may want to try programming a Tribot that can complete any room without a change of code! To help with this, there are a few global variables available to use:
gameInProgress
: Boolean - recommend creating a loop with this variable as shown belowobstacleAhead
: Boolean - true if an obstacle (wall or the edge of the room) is in front of the TribotobstacleBehind
: Boolean - true if an obstacle (wall or the edge of the room) is behind the Tribot
Here is a simple example of an AI Tribot! It may succeed in some rooms but fail in others - how could you improve it?
<script type="module" src="https://unpkg.com/tribot"></script>
<script type="module">
setRoom(2)
while(gameInProgress) {
while (obstacleAhead) {
turnLeft()
}
moveForward()
}
</script>