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.
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">
// Your code goes here
</script>
Then open this file in your favourite modern browser (relatively up-to-date version of Chrome, FireFox, Safari, Edge, etc).
Now you can start programming! In index.html
, replace // Your 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!
The following functions are available to control the robot:
moveForward()
moveBackward()
turnLeft()
turnRight()
changeColor(color)
(you can use a named color, egchangeColor('blue')
or a hex color egchangeColor('#800080')
)beep()
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
Rooms can be any (rectangular) size.
Instead of manually giving the Tribot instructions for how to get to the treasure in a particular room, you may want to try programming a Tribot that can complete any room, including rooms you haven't seen before! 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>