You should probably find some books on numerical modelling, and on simulation. They may help you understand how to create simulations.
Most similations work on a 'tick' basic - i.e. each element of the simulation calcuates its next state based on its inputs - but doesn't publish its calcuated next state until the end of the tick. That way, all elements in the simulation expose a constant expression of their value 'now' (i.e. in the current tick); only at the transition from one tick to the next do the elements update their 'published' current state to be the value that they had calculated it would be.
Here's some pseudo-code:
In each tick:
> Iterate each element in the simulation:
* The element calculates it's pending new value based on its inputs
(which are probably derived from the current states of other
elements in the simulation.
* The element caches this value (keeps it private).
> Iterate each element, again:
* The element sets its publicised value to be the value it cached
in the earlier iteration
In your example, a room is an element in the simulation. Rooms (as far as I can tell from your description) publish how much 'food' they contain. They also are aware of one or more other rooms (inputs).
Note that if one room eats from another the gain (in one room) and loss (in the other) of food are values to be accounted for in the calculated value that is cached in the two rooms; until the second iteration across all elements NO element updates its current state.
Have fun. Writing simulation systems is often very rewarding.