碁石モデルのプログラムをC言語で作ろうと思っています
どういったものかというと
1・二次元の正方格子(碁盤のようなもの)を考える
2・まず最初に1つだけ白いしを格子点に置く
3・その周りの四つの格子点に確率Pで白石を置く。そうでない場合は黒石をおく
4・次に白石に隣接する何も置いていない格子点に、3と同じ思考をする。
5・以上の操作をすべての白石が黒石に囲まれるまで繰り返す

このアルゴリズムを考えています。考え方のきっかえでももらえないでしょうか?
よろしくお願いします