第一個要拿來練功的題目是:Game of Life。
第一次看到「Game of Life」這有趣的玩意兒,是在「柏拉圖的天空」這本書中,後來在「複雜」這本書中又看到,留下了非常深刻的印象。這都是幾十年前的事了,直到幾年前,在「泛科學」這個網站,還有文章在介紹,可見它的吸引力。
「Game of Life」吸引人的地方,在於幾條簡單的規則,就可以產生複雜又具生命力的圖案,而且可以一代一代地繁衍下去。它述說的是,在由棋盤方格組成的世界中,住著一個一個的cell。這些cell會出生、繁衍、死亡。規則只有四條,可以濃縮成三條,簡單得很,就是去數每個cell周圍活著和死掉的鄰居數量,然後決定cell是生是死。簡單歸簡單,不過要寫程式,就得先想想,要怎麼呈現結果。
很直覺的,這程式要區分成「核心計算」和「視覺呈現」兩部分。「核心計算」?看著好像很複雜、很有學問,但其實就是去實作那幾條規則啦!「視覺呈現」這部分的程式,就負責把「核心計算」的結果呈現在畫面上,至於要怎麼個呈現法,那就等「核心計算」先寫完再說囉!