當電腦老師一直在幫學生抓錯,讓我想起"解彈簧"。彈簧打結只要0.1秒,解這個結卻可能要好久。
幫學生抓迷宮程式錯誤比解彈簧簡單,但是一個舉手就要搞很久,常常是得先了解他想做出什麼效果,什麼效果沒出現,然後再去幫他看是哪個地方出錯。
如果可以用找錯誤當電腦課考題應該很棒,例如故意拉掉或拉亂幾個積木,然後讓他們去找出問題。
這裡簡單記錄幾個學生常發生的問題~
鬼打牆一:時間怪怪的
真的怪怪的,一開始應該是"設定"
鬼打牆二:球球不會碰到邊邊就反彈
不是不會判斷,而是忘了重複執行。
程式已經執行過一次偵測就結束了。搭配重複執行才會不斷地進行偵測。
鬼打牆三:第一關永遠出不來
學生說,第一關出不來,每次都變成第二關... 在一堆角色與程式中,終於看到這個...
問題在哪?
廣播第二關的位置!
拉進去"如果",就好了。
鬼打牆四:恐龍不會消失
學生在第一關做了一個恐龍,她讓恐龍會顯示隱藏,不過,第二關她要恐龍隱藏,恐龍怎樣也不肯消失!
怎麼辦?
就算第二關要求隱藏,主程式仍不斷重複執行著顯示隱藏。可以怎麼做?
我最後是這麼做,用變數來控制,停止主程式的顯示隱藏。
在這個程式中,恐龍滾蛋是上一關廣播時附帶的變數設定。
後來發現,如果這隻恐龍不再出現,可以這樣:
停止這個角色的其他程式就好了。
鬼打牆五:關卡不能切換,還在執行上一關動作
學生在不同關卡中使用了相同的主角與終點角色。當關卡變多時,就容易鬼打牆了。
下面是學生的狀況,在第二關時碰到終點,卻無法透過廣播訊息2切換第三關。
仔細看看,主角球球碰到終點,到底是廣播訊息1,還是訊息2呢?
球球分不清楚,因為身在第二關,卻可能還是執行第一關的任務。
在廣播下一關之後,加入"停止這個程式"就能改善。
小心得:
除錯,很累。但我的程度有一點進步,不過~真的就沒有時間寫自己的了。
醫生是不是也是這樣?忙著為病人醫治健康,卻沒有時間處理自己的呢?
通常幫學生調好後,我又會把加進去的程式拉掉,幫學生復原成原來的,讓他們自己操作。