var canvas; const WAITING = 0; const RUNNING = 1; const REVIEWING = 2; const UP = 0; const RIGHT = 1; const DOWN = 2; const LEFT = 3; const RED = 0; const BLUE = 1; const GREEN = 2; const YELLOW = 3; const PURPLE = 4; const PINK = 5; const BLACK = 6; const GRAY = 7; const ALIVE = 0; const DEAD = 1; var BOT_X = -1 var BOT_Y = -1 var BOT_DIR = RIGHT var BOT_STATE = ALIVE var BOT_TAPE = [{color:RED},{color:BLUE}] var BELTDOWN = {type:"BELT",direction:DOWN/*,direction2 - defines a secondary direction. For two belts at once.*/} var BELTRIGHT = {type:"BELT",direction:RIGHT} var BELTUP = {type:"BELT",direction:UP} var BELTLEFT = {type:"BELT",direction:LEFT} var BRANCHDOWN = {type:"BRANCH",direction:DOWN,color1:RED,color2:BLUE} //color 1 points left, color 2 points right var BRANCHLEFT = {type:"BRANCH",direction:LEFT,color1:RED,color2:BLUE} var BRANCHRIGHT = {type:"BRANCH",direction:RIGHT,color1:RED,color2:BLUE} var BRANCHUP = {type:"BRANCH",direction:UP,color1:RED,color2:BLUE} var WRITERDOWN = {type:"WRITER",direction:DOWN,color:RED/*overwrite - if turned on, the writer overwrites the current tape position instead of appending.*/} var WRITERLEFT = {type:"WRITER",direction:LEFT,color:RED} var WRITERRIGHT = {type:"WRITER",direction:RIGHT,color:RED} var WRITERUP = {type:"WRITER",direction:UP,color:RED} var lastGameUpdate = 0; var gameSpeed = 1000/1; var gameState=RUNNING; var LEVEL0 = [ [{},{},{},{},{},], [{},{},{},{},{},], [{},{},{},{},{},], [{},{},{},{},{},], [{},{},{},{},{},],] var LEVEL1 = [ [{},{},{...BELTDOWN},{...BELTLEFT},{...BELTLEFT},], [{},{},{},{},{...BELTUP},], [{},{...BELTDOWN},{},{},{...BELTUP},], [{},{...BELTRIGHT},{...BELTRIGHT},{...BELTRIGHT},{...BELTUP},], [{},{},{},{},{},],] var LEVEL2 = [ [{},{},{},{},{},], [{},{...BELTRIGHT},{},{},{},], //BLUE [{},{...BRANCHRIGHT},{},{},{},], [{},{...BELTRIGHT},{},{},{},], //RED [{},{},{},{},{},],] var LEVEL3 = [ [{},{},{},{},{},], [{},{...WRITERUP,overwrite:true},{},{},{},], [{},{...WRITERDOWN},{},{},{},], [{},{...BELTRIGHT},{},{},{},], [{},{},{},{},{},],] var LEVEL4 = [ [{},{},{},{},{},], [{},{},{},{},{},], [{},{...BELTRIGHT,direction2:DOWN},{},{},{},], [{},{},{...BELTUP,direction2:LEFT},{},{},], [{},{},{},{},{},],] var gameGrid= [] function createGrid(width,height) { var grid = [] for (var i=0;i