| modulo(5+ | 
 | -n,5) | 

Figure 1: Revised Robber-Bot state machine (left) and clean Cop-Bot state machine (right)
Figure 2: Dirty Cop-Bot state machine
| world-msg | := | wor\ eol | ||
| wor: world eol | ||||
| rbd: loot eol | ||||
| dc\ eol | ||||
| ( dc: bot eol )* | ||||
| dc/ eol | ||||
| sc\ eol | ||||
| ( sc: bot bot eol )* | ||||
| sc/ eol | ||||
| fac\ eol | ||||
| ( fac: bot bot world eol )* | ||||
| fac/ eol | ||||
| bv\ eol | ||||
| ( bv: loc bank-value eol )* | ||||
| bv/ eol | ||||
| ev\ eol | ||||
| ( ev: loc world eol )* | ||||
| ev/ eol | ||||
| smell: distance eol | ||||
| pl\ eol | ||||
| ( pl: bot loc ptype eol )* | ||||
| pl/ eol | ||||
| wor/ eol | 
| cop-move-msg | := | cmov\ eol | ||
| offer | ||||
| move-msg | ||||
| acc\ eol | ||||
| ( acc: bot eol )* | ||||
| acc/ eol | ||||
| cmov/ eol | ||||
| offer | := | turncoat: eol | ||
| | | straight-arrow: eol | |||
| move-msg | := | mov\ eol | ||
| ( mov: loc ptype bot eol )* | ||||
| mov/ eol | 
| dirty-cop-move-msg | := | move-msg | 
| accused | := | accused: eol | 
| bribe-msg | := | bribe: eol | ||
| | | nobribe: eol | 
| offered-cops-msg | := | nottelling: eol | ||
| | | ofc\ eol | |||
| ( ofc: bot eol )* | ||||
| ofc/ eol | 
| robber-move-msg | := | rmov\ eol | ||
| mov: loc ptype bot eol | ||||
| bribe-result | ||||
| rmov/ eol | ||||
| bribe-result | := | push | ||
| | | choose | |||
| | | nobribe: eol | |||
| push | := | psh: bot loc eol | ||
| choose | := | chc\ eol | ||
| ( chc: bot eol )* | ||||
| chc/ eol | 
This document was translated from LATEX by HEVEA.