[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RR] Re: RoboRally Board Notation
Question on conveyor belts...
I had proposed a notation something like...
conv dir=e rotate="L---"
however, is the rotate component necessary?
Will there ever be a case where a conveyor could deposit a robot on
another conveyor that does *not* rotate it? If I can make the
assumption that anytime a conveyor deposits a robot on another
conveyor heading in another direction, the robot rotates
appropriately (assuming no gyroscopic stabilizer, of course)
WOuld that be a fair assumption? I simplifies the excoding of the
boards a bit, and makes for far fewer chances of human error
left... right... who can tell the difference... 8^)
On Mon, Aug 07, 2000 at 03:40:29PM -0400, Richard Rognlie wrote:
> I am experimenting with an *automated* roborally PBeM engine while I'm on
> vacation this week (hurray!)
>
> One of the requirements, is, of course, a way to specify to the game
> engine what the board has on it...
>
> Attached is an attempt to specify (informally) the board
>
> http://roborally.gamerz.net/images/koth-2d.jpg
>
> (This is the Koth board that Mark originally sent me... not the
> one currently in use on http://roborally.gamerz.net/koth1/)
>
> I want the text file dirt simple...
>
> width=XX
> height=YY
>
> then a series of lines (ignore blank, and lines that start with a #)
>
> each line is the description of a cell.
>
> start with the cell type
> empty, pit, conv(eyor), rand(omizer), chop(shop), etc.
>
> then any attributes associated with that cell...
> start
>
> Conveyor belts have a direction (where it pushes you)
> and may have a rotate element a 4 byte string representing
> north, east, south, west. e.g. "-L-R" That string means
> rotate the robot left if it was conveyored from the east, or
> rotate it right if it was converyored from the west. No
> rotation otherwise.
>
>
> Other attributes might be...
>
> ramp=X (there is a ramp from here, head in direction X)
>
> wall=X (there is a wall on the X edge)
>
> barrier=X (barrier is a wall with a hole... blocks movement, but not
> laser fire)
>
> laser=X (there is a laser on the implied X wall... firing through
> this cell)
>
> pusher=X[12345] pusher on implied wall X active during phases [12345]
>
> crusher=[12345] crusher active during phases [12345]
>
> etc. etc.
>
>
> If two adjoining cells have a element between them, only one cell
> needs to mention the wall/ramp/whatever...
>
>
> Comments only... Criticism will be dealt with harsely... 8^)
>
>
>
>
> --
> / \__ |
> \__/ \ | Richard Rognlie / Sr. Technical Consultant / Sendmail, Inc.
> / \__/ | http://www.gamerz.net/rrognlie/ <rrognlie@gamerz.net>
> \__/ |
> width=16
> height=16
>
> pit
> empty
> conv dir=s
> empty start
> empty
> empty
> empty
> empty
> empty
> empty
> empty
> empty start
> empty
> conv dir=s
> empty
> pit
>
> empty
> empty
> conv dir=e rotate="L---"
> conv dir=e
> conv dir=e
> conv dir=e
> conv dir=e
> conv dir=s rotate="-L-R"
> conv dir=w
> conv dir=w
> conv dir=w
> conv dir=w
> conv dir=w
> conv dir=w rotate="R---"
> empty
> empty
>
> conv dir=e
> conv dir=s rotate="---R"
> dblwr level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2 ramp=n
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> dblwr level=2
> conv dir=s rotate="-L--"
> conv dir=w
>
> empty
> conv dir=s
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> chop level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> conv dir=s
> empty start
>
> empty start
> conv dir=s
> empty level=2
> empty level=2
> empty level=3 ramp=w
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3 ramp=n
> empty level=2
> empty level=2
> conv dir=s
> empty
>
> empty
> conv dir=s
> empty level=2
> empty level=2
> empty level=3
> rand level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> rand level=3
> empty level=3
> empty level=2
> empty level=2
> conv dir=s
> empty
>
> empty
> conv dir=s
> empty level=2
> empty level=2
> empty level=3
> empty level=3
> empty level=4
> empty level=4
> empty level=4
> empty level=4
> empty level=3
> empty level=3
> empty level=2
> empty level=2
> conv dir=s
> empty
>
> empty
> conv dir=s
> empty level=2
> chop level=2
> empty level=3
> empty level=3
> conv dir=n level=4
> empty level=5 ramp=n
> empty level=5
> conv dir=n level=4 ramp=e
> empty level=3
> empty level=3
> empty level=2
> empty level=2 ramp=e
> conv dir=w rotate="R-L-"
> empty
>
> empty
> conv dir=e rotate="L-R-"
> empty level=2 ramp=w
> empty level=2
> empty level=3
> empty level=3
> conv dir=n level=4 ramp=w
> rand level=5
> empty level=5 ramp=s
> empty level=4
> empty level=3
> empty level=3
> chop level=2
> empty level=2
> conv dir=n
> empty
>
> empty
> conv dir=n
> empty level=2
> empty level=2
> empty level=3
> empty level=3
> empty level=4
> empty level=4
> empty level=4
> empty level=4
> empty level=3
> empty level=3
> empty level=2
> empty level=2
> conv dir=n
> empty
>
> empty
> conv dir=n
> empty level=2
> empty level=2
> empty level=3 ramp=s
> rand level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> rand level=3
> empty level=3 ramp=e
> empty level=2
> empty level=2
> conv dir=n
> empty
>
> empty
> conv dir=n
> empty level=2
> empty level=2
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=3
> empty level=2
> empty level=2
> conv dir=n
> empty start
>
> empty start
> conv dir=n
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> chop level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> conv dir=n
> empty
>
> conv dir=e
> conv dir=n rotate="---L"
> dblwr level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> empty level=2 ramp=s
> empty level=2
> empty level=2
> empty level=2
> empty level=2
> dblwr level=2
> conv dir=n rotate="-R--"
> conv dir=w
>
> empty
> empty
> conv dir=e rotate="--R-"
> conv dir=e
> conv dir=e
> conv dir=e
> conv dir=e
> conv dir=n rotate="-R-L"
> conv dir=w
> conv dir=w
> conv dir=w
> conv dir=w
> conv dir=w
> conv dir=w rotate="--L-"
> empty
> empty
>
> pit
> empty
> conv dir=n
> empty start
> empty
> empty
> empty
> empty
> empty
> empty
> empty
> empty start
> empty
> conv dir=n
> empty
> pit
--
/ \__ |
\__/ \ | Richard Rognlie / Sr. Technical Consultant / Sendmail, Inc.
/ \__/ | http://www.gamerz.net/rrognlie/ <rrognlie@gamerz.net>
\__/ |