OO and game design questions
tjreedy at udel.edu
Tue Oct 19 23:48:08 CEST 2010
On 10/19/2010 1:46 PM, Ian Kelly wrote:
> On Tue, Oct 19, 2010 at 5:37 AM, Dave Angel <davea at ieee.org
> <mailto:davea at ieee.org>> wrote:
> On 2:59 PM, dex wrote:
> Using strong references, I have to remove room B from list of rooms,
> and also remove door to room B, as it holds reference to room B.
> To do
> that, I have to keep list of doors that lead to room B.
> Using weak references, I don't have to worry about removing all
> to room B. They all now have a dead reference, which better models
> actual situation. If part of mine collapses, or if a module on space
> station is destroyed, the passage to that location does not
> vanish - it's just obstructed.
> Can you please tell me if there's something wrong with my reasoning?
> Simply replace room B with a "destroyed room" object. That can be
> quite small, and you only need one, regardless of how many rooms are
> thus eliminated.
> How does this avoid the problem of having to keep a list of doors that
> lead to room B? You can't just replace one object with another. You
> would have to replace every reference to B with a reference to the new
> object. This is no simpler than deleting the references or replacing
> them with None.
One should rather *change* (not replace) the room into a 'destroyed
room' or 'collapsed passage' or whatever, that cannot be entered. The
keeps the room around but allows it to be repaired, rebuilt, cleared, or
Terry Jan Reedy
More information about the Python-list