In Hut<----------------------------------\
| |
/--------------O-----------------------\ |
| | |
V V |
Catch Bat /------------------------> Light Fire |
| | / | |
O------/ | (hinges defrost) |
| | | |
V | /----------O-------\ |
Send bat for key | | | | |
| / V | V |
O-------------------------->A | Extinguish |
| | | fire |
V | | | |
Unlock door<--------------------/ | \______/
| |
\------------------>A<-----------------/
| O: Split - Do one or other
V A: Join - Must have done
Open door both.
This seems to cover your original problem, except for the timing
aspect of the smoke. (Although, correct me if I missed something).
This would be easier to add if we knew how long each action took,
but even so would be tricky (esp. in ASCII <G>).
If you add the constraints needed to give the order you said, then
it would also be more difficult to create. (btw - if this isn't
a proper DAG, I apologise, as I don't really know what one is).
However, whilst this may give clarity, it takes a lot longer to
construct than simply thinking it through in your head, and
with the additions would probably make it's difficulty outweigh
it's usefulness.
(All in my opinion, obviously!)
-- (Smile - or at least, if you can't smile, vomit) ___ ,';_,-,__ Writing is just backwards reading. /~_ ,',' |O|,:,\, Reading is just clever seeing. / /,',' /--|_|-;:;| Seeing is believing. ( )',_) ) ):;) To write, you must believe... >\,(__ / /:;;| :...Mark...//~ /:;:;:\