有趣的程式設計

初學程式時, 知道怎麼叫電腦從 1 加到 N, 或印出各科成績的平均, 會有小小的成就感.

def add1ToN(n):
  var sum = 0
  for i from 1 to n:
    sum = sum + i
  println("The sum is " + sum)

給定一個有規律的數字或圖案, 知道怎麼印出來, 又是另一個小小成就感。尤其, 當一個問題一開始覺得有點難, 程式寫了很多行, 終於還是拼湊出答案, 但後來又想了想,發覺原來有更簡潔的方法, 自己也會拍拍自己的背, 獎勵一下自己。

寫出有畫面,能與人互動的小遊戲,也會有不小的成就感吧. 可惜小時候沒有類似 Scratch 的工具,當然也沒有現在視為理所當然的網路環境,要能達到這一步,可是要花一會功夫。我們在 Stone 語言環境裏加入許多簡單圖形介面的小工具,就是希望學生不用花太多無謂的精力,就能看到有趣的成果 (參考一下)。

但請記得,除去畫面聲光,程式設計的樂趣其實是更純粹抽象的,常常隱含在創作者的巧思中,可以在程式中創造物件來表達。下面的 Stone 程式,沒有絢爛的外表,但也許作者正回憶著小時候盤算著小豬撲滿中到底有多少錢呢!

module piggyBank:
  var money = 0
  def save(n):
    money = money + n
  def peek():
    println("You have " + money + " dolors")

def memories():
  piggyBank.save(1)
  piggyBank.peek()
  piggyBank.peek()
  piggyBank.save(5)
  piggyBank.peek()