Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange
10 added 142 characters in body
source | link
var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);

    if(xDist < 2 && yDist < 2){
      if(e.x == myX){
        if(e.y == myY-1){move = 2;}
        else if(e.y == myY+1){move = 1;}
      }
      else if(e.x == myX-1){
        if(e.y == myY-1){move = 4;}
        else if(e.y == myY+1){move = 5;}
      }
      else if(e.x == myX+1){
        if(e.y == myY-1){move = 3;}
        else if(e.y == myY+1){move = 6;}
      }
    }
  }); 

  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
    if(move > 0){return move;} //0 on purpose; we might find a better escape

    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);

    if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still! 

    if(e.y == myY){
      if(e.x == myX-1){move = (topHalf ? 5 : 4);}
      else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
    }
 
  }); 

  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
    if(leftSide){
      if(!safe || register.e == 2){register.why = "ChaseMe!"; return 6;}
    }
    else{
      if(!safe || register.e == 2){register.why = "ChaseMe!"; return 5;}
    }
  }
  else {
    if(leftSide){
      if(!safe || register.e == 2){register.why = "ChaseMe!"; return 3;}
    }
    else{
      if(!safe || register.e == 2){register.why = "ChaseMe!"; return 4;}
}
  }
register.why = (register.e == 2}
 ? "GoHome"}
 : "Hunt!");
return register.f;
}

evalDanger();
register.x = myX;
register.y = myY;

var whee = kill();
if(whee > -1){
    register.go = whee;
    register.why = "KILL!";
    setMsg(JSON.stringify(register));
    return whee;
}

whee = live();
if(whee > -1){
    register.go = whee;
    register.why = "FLEE!";
    setMsg(JSON.stringify(register));
    return whee;
}

whee = distract();
register.go = whee;
setMsg(JSON.stringify(register));
return whee;
var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist < 2 && yDist < 2){
  if(e.x == myX){
      if(e.y == myY-1){move = 2;}
      else if(e.y == myY+1){move = 1;}
  }
  else if(e.x == myX-1){
      if(e.y == myY-1){move = 4;}
      else if(e.y == myY+1){move = 5;}
  }
  else if(e.x == myX+1){
      if(e.y == myY-1){move = 3;}
      else if(e.y == myY+1){move = 6;}
  }
}
  });
  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
if(move > 0){return move;} //0 on purpose; we might find a better escape

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still!
if(e.y == myY){
  if(e.x == myX-1){move = (topHalf ? 5 : 4);}
  else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
}
 
  });
  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
if(leftSide){
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 6;}
}
else{
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 5;}
}
  }
  else {
if(leftSide){
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 3;}
}
else{
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 4;}
}
  }
register.why = (register.e == 2 ? "GoHome" : "Hunt!");
return register.f;
}

evalDanger();
register.x = myX;
register.y = myY;

var whee = kill();
if(whee > -1){
    register.go = whee;
    register.why = "KILL!";
    setMsg(JSON.stringify(register));
    return whee;
}

whee = live();
if(whee > -1){
    register.go = whee;
    register.why = "FLEE!";
    setMsg(JSON.stringify(register));
    return whee;
}

whee = distract();
register.go = whee;
setMsg(JSON.stringify(register));
return whee;
var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);

    if(xDist < 2 && yDist < 2){
      if(e.x == myX){
        if(e.y == myY-1){move = 2;}
        else if(e.y == myY+1){move = 1;}
      }
      else if(e.x == myX-1){
        if(e.y == myY-1){move = 4;}
        else if(e.y == myY+1){move = 5;}
      }
      else if(e.x == myX+1){
        if(e.y == myY-1){move = 3;}
        else if(e.y == myY+1){move = 6;}
      }
    }
  }); 

  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
    if(move > 0){return move;} //0 on purpose; we might find a better escape

    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);

    if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still! 

    if(e.y == myY){
      if(e.x == myX-1){move = (topHalf ? 5 : 4);}
      else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
    }
  }); 

  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
    if(leftSide){
      if(!safe || register.e == 2){return 6;}
    }
    else{
      if(!safe || register.e == 2){return 5;}
    }
  }
  else {
    if(leftSide){
      if(!safe || register.e == 2){return 3;}
    }
    else{
      if(!safe || register.e == 2){return 4;}
    }
  }
  return register.f;
}

evalDanger();
register.x = myX;
register.y = myY;

var whee = kill();
if(whee > -1){
    return whee;
}

whee = live();
if(whee > -1){
    return whee;
}

whee = distract();
return whee;
9 Added a better message
source | link
var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist < 2 && yDist < 2){
  if(e.x == myX){
      if(e.y == myY-1){move = 2;}
      else if(e.y == myY+1){move = 1;}
  }
  else if(e.x == myX-1){
      if(e.y == myY-1){move = 4;}
      else if(e.y == myY+1){move = 5;}
  }
  else if(e.x == myX+1){
      if(e.y == myY-1){move = 3;}
      else if(e.y == myY+1){move = 6;}
  }
}
  });
  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
if(move > 0){return move;} //0 on purpose; we might find a better escape

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still!
if(e.y == myY){
  if(e.x == myX-1){move = (topHalf ? 5 : 4);}
  else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
}

  });
  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
if(leftSide){
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 6;}
}
else{
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 5;}
}
  }
  else {
if(leftSide){
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 3;}
}
else{
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 4;}
}
  }
register.why = (register.e == 2 ? "GoHome" : "Hunt!");
return register.f;
}

evalDanger();
register.x = myX;
register.y = myY;

var whee = kill();
if(whee > -1){
    register.go = whee;
    register.why = "KILL!";
    setMsg(JSON.stringify(register));
    return whee; 
} 

whee = live();
if(whee > -1){
    register.go = whee;
    register.why = "FLEE!";
    setMsg(JSON.stringify(register));
    return whee; 
} 

whee = distract();
register.go = whee;
setMsg(JSON.stringify(register));
return whee;
var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist < 2 && yDist < 2){
  if(e.x == myX){
      if(e.y == myY-1){move = 2;}
      else if(e.y == myY+1){move = 1;}
  }
  else if(e.x == myX-1){
      if(e.y == myY-1){move = 4;}
      else if(e.y == myY+1){move = 5;}
  }
  else if(e.x == myX+1){
      if(e.y == myY-1){move = 3;}
      else if(e.y == myY+1){move = 6;}
  }
}
  });
  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
if(move > 0){return move;} //0 on purpose; we might find a better escape

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still!
if(e.y == myY){
  if(e.x == myX-1){move = (topHalf ? 5 : 4);}
  else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
}

  });
  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
if(leftSide){
  if(!safe || register.e == 2){return 6;}
}
else{
  if(!safe || register.e == 2){return 5;}
}
  }
  else {
if(leftSide){
  if(!safe || register.e == 2){return 3;}
}
else{
  if(!safe || register.e == 2){return 4;}
}
  }
return register.f;
}

evalDanger();
var whee = kill();
if(whee > -1){return whee;}
whee = live();
if(whee > -1){return whee;}
whee = distract();
return whee;
var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist < 2 && yDist < 2){
  if(e.x == myX){
      if(e.y == myY-1){move = 2;}
      else if(e.y == myY+1){move = 1;}
  }
  else if(e.x == myX-1){
      if(e.y == myY-1){move = 4;}
      else if(e.y == myY+1){move = 5;}
  }
  else if(e.x == myX+1){
      if(e.y == myY-1){move = 3;}
      else if(e.y == myY+1){move = 6;}
  }
}
  });
  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
if(move > 0){return move;} //0 on purpose; we might find a better escape

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still!
if(e.y == myY){
  if(e.x == myX-1){move = (topHalf ? 5 : 4);}
  else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
}

  });
  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
if(leftSide){
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 6;}
}
else{
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 5;}
}
  }
  else {
if(leftSide){
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 3;}
}
else{
  if(!safe || register.e == 2){register.why = "ChaseMe!"; return 4;}
}
  }
register.why = (register.e == 2 ? "GoHome" : "Hunt!");
return register.f;
}

evalDanger();
register.x = myX;
register.y = myY;

var whee = kill();
if(whee > -1){
    register.go = whee;
    register.why = "KILL!";
    setMsg(JSON.stringify(register));
    return whee; 
} 

whee = live();
if(whee > -1){
    register.go = whee;
    register.why = "FLEE!";
    setMsg(JSON.stringify(register));
    return whee; 
} 

whee = distract();
register.go = whee;
setMsg(JSON.stringify(register));
return whee;
8 Miss you, buddy
source | link

Blue Team - FansyFetch [38953]

var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist < 2 && yDist < 2){
  if(e.x == myX){
      if(e.y == myY-1){move = 2;}
      else if(e.y == myY+1){move = 1;}
  }
  else if(e.x == myX-1){
      if(e.y == myY-1){move = 4;}
      else if(e.y == myY+1){move = 5;}
  }
  else if(e.x == myX+1){
      if(e.y == myY-1){move = 3;}
      else if(e.y == myY+1){move = 6;}
  }
}
  });
  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
if(move > 0){return move;} //0 on purpose; we might find a better escape

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY); 

if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still!
if(e.y == myY){
  if(e.x == myX-1){move = (topHalf ? 5 : 4);}
  else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
}
else if(xDist + yDist < 5){move = 0;}

  });
  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
if(leftSide){
  if(!safe || register.e == 2){return 6;}
}
else{
  if(!safe || register.e == 2){return 5;}
}
  }
  else {
if(leftSide){
  if(!safe || register.e == 2){return 3;}
}
else{
  if(!safe || register.e == 2){return 4;}
}
  }
return register.f;
}

evalDanger();
var whee = kill();
if(whee > -1){return whee;}
whee = live();
if(whee > -1){return whee;}
whee = distract();
return whee;

Blue Team - Fansy [38953]

var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist < 2 && yDist < 2){
  if(e.x == myX){
      if(e.y == myY-1){move = 2;}
      else if(e.y == myY+1){move = 1;}
  }
  else if(e.x == myX-1){
      if(e.y == myY-1){move = 4;}
      else if(e.y == myY+1){move = 5;}
  }
  else if(e.x == myX+1){
      if(e.y == myY-1){move = 3;}
      else if(e.y == myY+1){move = 6;}
  }
}
  });
  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
if(move > 0){return move;} //0 on purpose; we might find a better escape

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(e.y == myY){
  if(e.x == myX-1){move = (topHalf ? 5 : 4);}
  else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
}
else if(xDist + yDist < 5){move = 0;}

  });
  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
if(leftSide){
  if(!safe || register.e == 2){return 6;}
}
else{
  if(!safe || register.e == 2){return 5;}
}
  }
  else {
if(leftSide){
  if(!safe || register.e == 2){return 3;}
}
else{
  if(!safe || register.e == 2){return 4;}
}
  }
return register.f;
}

evalDanger();
var whee = kill();
if(whee > -1){return whee;}
whee = live();
if(whee > -1){return whee;}
whee = distract();
return whee;

Blue Team - Fetch [38953]

var me = 38953;
var msg = getMsg(me);
var register = msg ? JSON.parse(msg) : {};
var prevDanger = 0;
var danger;

var eScope = eNear;
var myX = x;
var myY = y;
var put = setMsg;
var get = getMsg;

function kill(){
  var move = -1;
  if(!eScope){return -1;}

  eScope.forEach(function(e){
    if(move > -1){return move;}

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY);

if(xDist < 2 && yDist < 2){
  if(e.x == myX){
      if(e.y == myY-1){move = 2;}
      else if(e.y == myY+1){move = 1;}
  }
  else if(e.x == myX-1){
      if(e.y == myY-1){move = 4;}
      else if(e.y == myY+1){move = 5;}
  }
  else if(e.x == myX+1){
      if(e.y == myY-1){move = 3;}
      else if(e.y == myY+1){move = 6;}
  }
}
  });
  return move;
}

function live(){
  var move = -1;
  if(!eScope){return -1;}
  var topHalf = (myY <= 64);

  eScope.forEach(function(e){
if(move > 0){return move;} //0 on purpose; we might find a better escape

var xDist = Math.abs(e.x-myX);
var yDist = Math.abs(e.y-myY); 

if(xDist + yDist < 5){move = 0;}  //uh oh!  Stand still!
if(e.y == myY){
  if(e.x == myX-1){move = (topHalf ? 5 : 4);}
  else if(e.x == myX+1){move = (topHalf ? 6 : 3);}
}

  });
  return move;
}

function evalDanger(){
  danger = 0;

  if(register){prevDanger = register.d;}

  eScope.forEach(function(e){
    var xDist = Math.abs(e.x-myX);
    var yDist = Math.abs(e.y-myY);
    danger += ((1/yDist) * (1/xDist));
  });

  register.d = danger;
  put(JSON.stringify(register));
  return danger;
}

function distract(){
  //run to the edge if safe, to the middle if not
  var safe = (danger <= prevDanger && danger < .01);

  var topHalf = myY <= 64;
  var leftSide = myX <= 64;

  //lazy init to 'explore' mode
  if(!register.e){register.e = 1;}

  //lazy init to whatever corner we're in
  if(!register.f){
    register.f = topHalf ? leftSide ? 4 : 3 : leftSide ? 5 : 6;
  }

  //turn 'explore' on (1) or off (2);
  //if 'off' but hit 'home base', seek a corner
  if(register.e == 2 && ((myY > 54 && myY < 74) || (myX > 54 && myX < 74))){
    register.e = 1
    register.f = Math.floor(Math.random()*4)+3;
  }
  //if on the outskirts, go back to base
  if(myY < 10 || myY > 115 || myX < 10 || myX > 115){register.e = 2;}

  put(JSON.stringify(register));

  if(topHalf){
if(leftSide){
  if(!safe || register.e == 2){return 6;}
}
else{
  if(!safe || register.e == 2){return 5;}
}
  }
  else {
if(leftSide){
  if(!safe || register.e == 2){return 3;}
}
else{
  if(!safe || register.e == 2){return 4;}
}
  }
return register.f;
}

evalDanger();
var whee = kill();
if(whee > -1){return whee;}
whee = live();
if(whee > -1){return whee;}
whee = distract();
return whee;
7 added 62 characters in body
source | link
6 Bugfix
source | link
5 Improved exploration to pick up more prey
source | link
4 added 3 characters in body
source | link
3 deleted 1 character in body
source | link
2 deleted 1 character in body
source | link
1
source | link