summaryrefslogtreecommitdiff
path: root/src/world
diff options
context:
space:
mode:
Diffstat (limited to 'src/world')
-rw-r--r--src/world/agent.js2
-rw-r--r--src/world/proposal.js3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/world/agent.js b/src/world/agent.js
index dbfdf5d..2be7420 100644
--- a/src/world/agent.js
+++ b/src/world/agent.js
@@ -7,7 +7,7 @@ import { proposal_merge } from './proposal.js';
export function agent_decide(world, agent, senses, actions) {
const inputs = senses.map(s => sense_read(world, agent, s)).flat();
const [result, state] = agent.net.compute(inputs, agent.state);
- console.log(agent, result);
+ console.log(result, state);
const new_agent = { ...agent, state };
const [proposals, _] = actions.reduce(
diff --git a/src/world/proposal.js b/src/world/proposal.js
index 0969540..8baca06 100644
--- a/src/world/proposal.js
+++ b/src/world/proposal.js
@@ -57,6 +57,7 @@ import { pairs, deepEqual } from '../util.js';
// check that two flags objects are compatible
// flags are considered compatible if they do not have any common keys with different values
function flags_compatible(a, b) {
+ if (a === undefined || b === undefined) { return true; }
const keys = [...new Set(Object.keys(a).concat(Object.keys(b)))];
return keys.reduce(
(acc, key) => {
@@ -80,7 +81,7 @@ function lattice_change_conflict(a, b) {
if (
a.x === b.x &&
a.y === b.y &&
- (a.to != b.to || !flags_compatible(a.flags || {}, b.flags || {}))
+ (a.to != b.to || !flags_compatible((a.flags || {}), (b.flags || {})))
) {
// conflict!
return [true, false];