public/subjects/tron
xpetit def316d0f3
Reformat markdown (with prettier)
2021-04-27 21:04:54 +02:00
..
ai fix: issue #679 2020-11-16 12:19:07 +00:00
audit Reformat markdown (with prettier) 2021-04-27 21:04:54 +02:00
lib tron: legacy 2020-06-14 20:54:25 +02:00
README.md Reformat markdown (with prettier) 2021-04-27 21:04:54 +02:00
index.html tron: add auto redirect to the subject 2021-03-07 10:43:32 +01:00
legacy.html tron: legacy 2020-06-14 20:54:25 +02:00

README.md

Tron

Objectives

In this project you will have to create your own Tron AI snake

Getting started

You will need to create a public repository with the name tron. Next you need to create a file named ai.js. It must respect the instructions given

Controls

  • arrows or scroll to move step by step
  • shift will make it fast
  • you can click anywhere on the progress bar to seek into the history

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 its right. (Moving backward 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 biggest score wins

How to write your AI

  • Copy the code on the file random.js to your file, ai.js
  • You may now edit the update function which is called each turn

⚠️ Do not rename the update function ⚠️
as it's the function that the worker will try to run to test your AI.

How to test your AI

Replace this line just before the return of the update function:

const available = coordsInBound.filter(isFree)

// And I return a random available coord
return pickRandom(available)

...with this line:

// always return the first free coordinates
return coordsInBound.filter(isFree)[0]
  • save the file, push the changes and re-run 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 controlling 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.