Othello 盤 : その方向で相手のコマが挟める 仕様 : 要求された「機能」の内容 その方向で相手のコマが挟める(再) その方向に相手のコマが(一つ以上)並んでいて、その先に自分のコマがある 設計 : 仕様の実現手段を考える P(dir) : 「dir の方向でコマが挟める」という事を確認する述語 発想 : 一般的な事を考える前に、具体例で考える (右方向なら..) 事例 ( * で o を挟んだ状態.. ) P(右) : *o*, *oo*, *ooo*, *oooo*, .. 一番左の二つを外してみる.. (規則性が見付かるか ..) Q(右) : *, o*, oo*, ooo*, .. Q(右) の再帰的な定義 Q(右) : 今みている所が '*' か、'o' なら、一つ右が Q(右) P(右) の Q(右) を利用した定義 P(右) : 今みている所 ' ' で、右が 'o' で、その先が Q(右)