Skip to content

Instantly share code, notes, and snippets.

@rlemon
Last active December 12, 2015 02:58
Show Gist options
  • Select an option

  • Save rlemon/4703120 to your computer and use it in GitHub Desktop.

Select an option

Save rlemon/4703120 to your computer and use it in GitHub Desktop.
/* Random number generator... kinda.. half assed.. kinda works. */
var pRand = function(nseed) {
var seed, constant = Math.pow(2, 13) + 1, prime = 37, maximum = Math.pow(2, 50);
if(nseed) {
seed = nseed
}
if(seed == null) {
seed = (new Date).getTime()
}
return{next:function() {
seed *= constant;
seed += prime;
seed %= maximum;
return parseFloat("." + seed)
}}
};
/* Robot class */
var Robot = function(robot) {};
/* make initial random seed */
var n = pRand(123);
/* random move */
function randomMove(robot) {
robot.turn(n.next()*360-180);
robot.ahead(n.next()*100-10);
}
/* Idle bot */
Robot.prototype.onIdle = function(ev) {
var robot = ev.robot;
randomMove(robot);
};
/* Bot found! */
Robot.prototype.onScannedRobot = function(ev) {
var robot = ev.robot;
n = pRand(ev.scannedRobot.angle); // reseed random number gen
robot.fire(); // fire and run towards
robot.ahead(50); // this SHOULD get distance between and travel it.
};
/* Random number generator... kinda.. half assed.. kinda works. */
var pRand = function(nseed) {
var seed, constant = Math.pow(2, 13) + 1, prime = 37, maximum = Math.pow(2, 50);
if(nseed) {
seed = nseed
}
if(seed == null) {
seed = (new Date).getTime()
}
return{next:function() {
seed *= constant;
seed += prime;
seed %= maximum;
return parseFloat("." + seed)
}}
};
/* Robot class */
var Robot = function(robot) {
robot.rotateCannon(90);
robot.rotateCannon(-1 * robot.cannonRelativeAngle);
};
var props = {
rand : pRand(5318008)
}
/* random move */
function randomMove(robot) {
robot.turn(props.rand.next()*90-45);
robot.ahead(props.rand.next()*100-30);
}
function resetCannon(robot) {
robot.rotateCannon(-1 * robot.cannonRelativeAngle);
}
/* Idle bot */
Robot.prototype.onIdle = function(ev) {
var robot = ev.robot;
if( robot.cannonRelativeAngle !== 0 ) {
resetCannon(robot);
}
};
/* Bot found! */
Robot.prototype.onScannedRobot = function(ev) {
var robot = ev.robot;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment