Source access computation

This commit is contained in:
dan 2020-11-14 02:14:51 -06:00
parent e7f66d8918
commit a91ac17be1
3 changed files with 59 additions and 16 deletions

View File

@ -82,6 +82,31 @@ module.exports = {
},
sellEnergy: function(roomname){
let myorders = Game.market.getAllOrders(order=>order.resourceType == RESOURCE_ENERGY && order.type == ORDER_SELL)
},
computeSourceAccess: function(){
for(let myroom of _.filter(Game.rooms, 'controller.my')) {
let name = myroom.name
let minablepositions = 0
let srcs = Game.rooms[name].find(FIND_SOURCES);
for(let i = 0;i<srcs.length;i++)
{
minablepositions = minablepositions + this.computeSourceAccessPoints(Game.rooms[name],srcs[i])
//minablepositions = minablepositions + this.checkminablepositions(srcs[i])
}
Game.rooms[name].memory.minablepositions = minablepositions
}
},
computeSourceAccessPoints: function(room, source){
const roomTerrain = room.getTerrain();
var accessPoints = 0;
for(var x = -1;x<=1;x++)
{
for(var y = -1;y<=1;y++)
{
if(x==0 && y==0){continue;}
if(roomTerrain.get(source.pos.x+x,source.pos.y+y)!=1){accessPoints++;}
}
}
return accessPoints;
}
};

View File

@ -10,22 +10,40 @@ let initroom = {
Game.rooms[name].memory.tickssofar=0
Game.rooms[name].memory.maphits={}
//Game.rooms[name].memory.minablepositions= this.checkminablepositions(name)
let minablepositions = 0
let srcs = Game.rooms[name].find(FIND_SOURCES);
for(let i = 0;i<srcs.length;i++)
{
minablepositions = minablepositions + this.computeSourceAccessPoints(Game.rooms[name],srcs[i])
//minablepositions = minablepositions + this.checkminablepositions(srcs[i])
}
Game.rooms[name].memory.minablepositions = minablepositions
},
computeSourceAccessPoints: function(room, source){
const roomTerrain = room.getTerrain();
var accessPoints = 0;
for(var x = -1;x<=1;x++)
{
for(var y = -1;y<=1;y++)
{
if(x==0 && y==0){continue;}
if(roomTerrain.get(source.pos.x+x,source.pos.y+y)!=1){accessPoints++;}
}
}
return accessPoints;
},
checkminablepositions: function(name){
Source.prototype.analyzeFreeSpaces = function() {
let x = this.pos.x;
let y = this.pos.y;
let walkable = this.room.lookForAtArea(
LOOK_TERRAIN,
y - 1, // top
x - 1, // left
y + 1, // bottom
x + 1, // right
true // asArray
).filter(o => o[LOOK_TERRAIN] !== 'wall');
return walkable.length;
};
let x = this.pos.x;
let y = this.pos.y;
let walkable = this.room.lookForAtArea(
LOOK_TERRAIN,
y - 1, // top
x - 1, // left
y + 1, // bottom
x + 1, // right
true // asArray
).filter(o => o[LOOK_TERRAIN] !== 'wall');
return walkable.length;
}
}
module.exports = initroom

View File

@ -63,7 +63,7 @@ module.exports.loop = function () {
require('role.' + creep.memory.role).run(creep)
//creep.say("TRYING")
} catch (e) {
console.log("creep error")
console.log("creep error " + Game.creeps[name])
console.log(e)
}
}