CLangの基本的な考えは,条件と指示を対応づけるルールとして戦略と行動を 記述することである. 各ルールは,状況を示す要素(条件:condition)と,条件がtrueの時に適 用可能な指示:directivesのリストによって構成される. ルールは,プレイヤがどのように行動すべきかを教えるアドバイスとしてだけ でなく,ある状況で敵がどのように振舞うかを記述した情報などとしても利用 できる. CLangでは,ルールはIDを持ち,コーチは後でそれらを参照することができる.
以下に単純なルールの例を示す. このルールは,5番のプレイヤがボールを持ちフィールド中央に位置していれ ば,味方の11番へパスすることをアドバイスしている:
(define (definerule MyRule1 direc ( (and (bowner our 5) (bpos (rec (pt -10 -10) (pt 10 10))) ) (do our 5 (pass 11)) ) ) )
各基本要素についての詳細は後で説明される. 今は,ルールに ID "MyRule1" が割り当てられ,指示として定義されているこ とに関する説明を行なう(観測された振舞いを記述したモデルルールとは異な る). bownerは,コーチのチームの5番プレイヤがボール所有者であること を決定する. bposは,矩形によってボールの位置を指定する. 最後に,5番プレイヤが味方の11番へとパスを行なうよう指示が行なわれてい る. CLangにおいて, (pass 11) は行動:actionで, (do our 5 (pass 11)) は 指示:directive である.
デフォルトでは,ルールはオフに設定されている. よって,コーチは (rule (on MyRule1))のようなメッセージを送る ことでルールを有効化しなければならない.
それでは,言語の概念について,より詳細に解説を行おう.