Skybuck\'s Universal Memory Architecture Extension (16 january 2022)
There may be a problem with the Tron/Snake based approach/idea.
In Tron/Snake the motor cycles/snakes can only grow. Shrinking is not possible, except when they die.
To allow shrinking additional information would need to be recorded. For example where the snake cell came from.
To incorporate this functionality the following changes should be made:
DirectionBit0 is renamed to GrowDirectionBit0
DirectionBit1 is renamed to GrowDirectionBit1
Two new direction bits are added:
ShrinkDirectionBit0
ShrinkDirectionBit1
The meaning of combining two of the same direction bits to form a direction bit field remain the same:
Order of DirectionBits: DirectionBit0, DirectionBit1:
00 = up
01 = right
10 = down
11 = left
(DirectionBit0 is LSB=least significant bit, DirectionBit1 is MSB=Most Significant Bit)
The ShrinkDirectionBits should be set to where the snake cell came from, it\'s ancestor/predecessor.
So for example.
If the current snake cell is on x 200 y 100 and it came from x 199 y 100 the shrink bits would be set as follows:
ShrinkDirectionBit0 = 1
ShrinkDirectionBit1 = 1
This indicates that if the snake wants to shrink back into a safe memory cell that was allocated before the growth then it can do so
and go there.
This leaves one problem remaining indicating if there was a previous connected bit. Like in the ConnectionBit description.
This may and could also be updated or the head/tail pointers could be used to detect if it\'s already at the head/tail.
Or as defined as SourceX,SourceY.
If the connection bit feature is implemented/used it will also need to be updated and renamed:
ConnectionBit will be renamed to NextBitConnected
and a new bit will be introduced:
PreviousBitConnected
The maining of these bits are slightly altered:
For NextBitConnected it means:
0 = head of snake/last cell
1 = intermediate cell
For PreviousBitConnected it means:
0 = tail of snake/first cell
1 = intermediate cell
This extended version should allow shrinking (as well as growing) of snakes (a bit more easily) !
To go Left, Right, Down, Up is weakly defined, but I will give a suggestion here:
To go left means -1
To go right means +1
To go up means +1
To go down means -1
(Visualizing an image of the memory map may have to be inverted on vga/graphics systems where the y-axis is inverted.)
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.