Seguidor de linha (Versão 1.0 - 15/08/2011)
Editar pista [
?
]
r 50 c 100 90 r 350 c 75 180 r 250 c 50 -180 r 150 c 75 270 r 400 c 25 -180 r 750 --- r 50 c 200 180 r 100 c 150 180 r 100 c 100 270 r 400 c 100 -270 r 100 c 150 -180 r 700 --- r 500 c 75 180 r 500 c 75 -180 r 500 c 75 180 r 500 c 75 -180 r 500 c 75 270 r 800 c 75 -180 r 800 c 75 180 r 1375 c 75 -90 r 375 c 75 -180
Editar robôs [
?
]
var gui = new Robo(50, 50); gui.add_sensor(1, -14, -25); gui.add_sensor(2, -5, -25); gui.add_sensor(3, 5, -25); gui.add_sensor(4, 14, -25); gui.curva = 0; gui.logica = function () { if (this.sensor(1) && this.sensor(4)) { // Nada } else if (this.sensor(1)) { this.giro = -.6; this.velo = .2; this.curva = -1; } else if (this.sensor(4)) { this.giro = .6; this.velo = .2; this.curva = 1; } else if (this.sensor(2)) { this.giro = -.3; this.velo = .5; this.curva = 0; } else if (this.sensor(3)) { this.giro = .3; this.velo = .5; this.curva = 0; } else if (this.curva == 0) { this.giro = 0; this.velo = .85; } else { this.giro = .8*this.curva; this.velo = .1; } }; var te = new Robo(50, 50, 0x990000); te.add_sensor(1, -7, -25); te.add_sensor(2, 0, -25); te.add_sensor(3, 7, -25); te.add_sensor(4, 0, 25); te.curva = 0; te.logica = function () { if (this.sensor(1) && this.sensor(3)) { // Nada } else if (this.sensor(1)) { this.giro = -0.6; this.velo = .2; this.curva = -1; } else if (this.sensor(3)) { this.giro = 0.6; this.velo = .2; this.curva = 1; } else if (this.sensor(2) && !this.sensor(4)) { this.giro = -.3*this.curva; this.velo = .4; this.curva = this.curva*(-1); } else if (!this.sensor(2) && this.sensor(4)) { this.giro = .3*this.curva; this.velo = .4; } else if (this.sensor(2) && this.sensor(4)) { this.giro = 0; this.velo = .85; } else if (this.curva == 0) { this.giro = 0; this.velo = 1; } else { this.giro = .8*this.curva; this.velo = .1; } } var atual = new Robo(50, 50, 0x000099); atual.add_sensor(1, -7, -25); atual.add_sensor(2, 7, -25); atual.add_sensor(3, -7, 25); atual.add_sensor(4, 7, 25); atual.curva = 0; atual.logica = function () { if (this.sensor(1) && this.sensor(2)) { // Nada } else if (this.sensor(1)) { this.giro = -0.2; this.velo = .5; this.curva = -1; } else if (this.sensor(2)) { this.giro = 0.2; this.velo = .5; this.curva = 1; } else if (this.curva == 0) { this.giro = 0; this.velo = 1; } else { this.giro = .8*this.curva; this.velo = .1; } }
Download do código fonte (27.5 KiB)
Fale Conosco