You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

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 autoplay
  • right arrow plays one move
  • up arrow increases the autoplay speed
  • down arrow lowers the autoplay speed
  • R reloads the same play
  • S 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 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 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.