[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>
 \__/    |