[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RR] Antwort: Re: RoboRally Board Notation
Am 08.08.2000 17:28:51 beliebte Richard Rognlie zu verkünden:
>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^)
The rotate component works only in the case of a simple curve. If you have a
joining of two belts it wouldn't work at all.
And even if you don't implement nonstandard elements now you should have a look
at them to proof that a design decision would hinder one of the new elements
from implentation.
So, there are joinings of three belts - it wouldnt fit into the rotate
parameter.
And what about branches? They are phased. How can they fit into the notation?
Freimut
>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>
> \__/ |