2.5 KiB
tron
Ojectives
In this project you will have to create your own Tron Ai snake
Getting started
First, clone this repo : https://github.com/01-edu/tronBlank
then execute the command below.
http-server tronBlank/
if http-server is not installed do this command:
npm install -g http-server
Controls
space
toogles autoplayright arrow
plays one moveup arrow
increases the autoplay speeddown arrow
lowers the autoplay speedR
reloads the same playS
loads a new play (new seed)
Rules
- Your Ai has to move every turn (it can not stay still)
- Every time the Ai moves somewhere the Ai leaves a color trail.
- the Ai can only move to a blank tile.
- the Ai can not move out of the map (100 x 100)
- the Ai can only move to its
left
,forward
or itsright
. (Movingbackward
is suicide as it would hit its own trail !) - If too much CPU power is required to decide where to go, the Ai dies.
- If two Ais moved to the same spot, both of them die.
- The Ai has to survive as long as it can.
The game ends
- Once no players can make a move
- The player with the longest trail wins
How to write your AI
- Copy the file /ai/random.js to /ai/GITHUB_LOGIN.js
- You may now edit the
update
function which is called each turn
How to test your AI
-
Suppose the link provided by http-server is :
http://127.0.0.1:8080/?seed=somevalue&users=random
-
You need to add your ai as a user in that link,
-
Example: if your ai file's name is /ai/Frenchris.js the link becomes:
http://127.0.0.1:8080/?seed=somevalue&users=Frenchris,random
-
Open the inspector of the browser used and disable the cache
-
let's change the update function so that your ai only goes forward.
replace this line just before the return
of the update function
const available = coordsInBound.filter(isFree)
with this line
const available = coordsInBound.filter(isFree).filter(el => el.direction === 0)
-
save the file and rerun the game in the browser. If the cache was correctly disabled, you have changed your ai behaviour from a random pick of available moves to only going forward.
-
To understand better the way of controling your AI, read the comments inside the Ai file and do a lot of testing.
-
When peer-corrected, you Ai will be competing against other Ais. Be aware that there will be the possibility for the peer-correcter to use his or her own Ai.
May the best tron win :)
Have fun and good luck.