From 22fe18beac4459427c2b40499afafc7c5c868691 Mon Sep 17 00:00:00 2001 From: sanine Date: Sun, 12 Nov 2023 11:48:41 -0600 Subject: fix bug with too many vision outputs --- src/simulation/game.js | 2 +- src/simulation/senses.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/simulation/game.js b/src/simulation/game.js index 17b1442..05ac4a1 100644 --- a/src/simulation/game.js +++ b/src/simulation/game.js @@ -72,7 +72,7 @@ export function create_world(size, teams) { )) const [x, y, ..._] = random_choice(available_cells); const orientation = random_choice([ 'n', 'e', 's', 'w' ]); - return [...acc, {...agent, x, y, flags: { ...agent.flags, orientation } }]; + return [...acc, {...agent, x, y, flags: { ...agent.flags, team: team_num, orientation } }]; }, [] )); diff --git a/src/simulation/senses.js b/src/simulation/senses.js index ca07442..9d50a83 100644 --- a/src/simulation/senses.js +++ b/src/simulation/senses.js @@ -152,7 +152,8 @@ function see_agent(viewer, agent) { const see = { size: VIS_WIDTH * VIS_HEIGHT, read: (world, agent) => { - const vision = [...Array(VIS_WIDTH*VIS_HEIGHT).keys()] + const indices = [...Array(VIS_WIDTH*VIS_HEIGHT).keys()] + const vision = indices .map(idx => { const [x, y] = vision_idx_to_world_pos(world, agent, idx); return see_cell(world, x, y); @@ -160,7 +161,8 @@ const see = { const result = world.agents.reduce( (acc, a) => { const idx = world_pos_to_vision_idx(world, agent, a.x, a.y); - if (idx < 0 || idx > VIS_WIDTH*VIS_HEIGHT) { + + if (idx < 0 || idx >= VIS_WIDTH*VIS_HEIGHT) { return acc; } else { acc.splice(idx, 1, see_agent(agent, a)); -- cgit v1.2.1