2014年12月31日 星期三

[小貓咪程式開發]精靈融合

兩個月前,我給Jimmy指派這個精靈融合的程式作業,大概解釋一下我的想法,剩下的設計實作就任由他發揮,Jimmy依據以往玩遊戲的經驗,設計許多的使用者介面切換動作,但是Scratch本身並不支援視窗、表格等UI元件,所以他自己從無到有花許多時間寫程式,由於Scratch廣播訊息不方便以中文命名,Jimmy直接以數字或字母命名訊息,整個程式架構夠複雜到讓小小年紀的他,體會到什麼是什錦麵或義大利麵式爛設計模式



這裡可以看完整的程式碼

為了達到程式效果,Jimmy大概用了超過40個以上的訊息廣播,除錯起來讓人眼花撩亂,不過對一個國小四年級小朋友來說,肯花時間有耐心地觀察十多個角色之間訊息傳遞, 實在難能可貴

精靈融合玩法,先按右上方綠旗,再按PLAY



鼠標移到左上方,有火系、水系、植物系目錄選項,先選擇火系精靈



這時出現的表格會列出所有火系精靈,目前的版本只列出兩種火精靈,接下來點選精靈



按MIX可融合兩種精靈



這是融合後的新精靈



按BOOK可瀏覽你有哪些新精靈



這個頁面花了好多時間除錯,未來如果有更多原始精靈,Jimmy鐵定要耗更多時間修改,他就會體會到什麼是什錦麵/義大利麵爛設計模式

2014年12月23日 星期二

戰鬥程式碼(CodeCombat),一款讓小朋友打怪得寶物順便學寫程式的好遊戲

戰鬥程式碼(CodeCombat),是code.org推動的"寫程式一小時"活動所推薦的遊戲網站

這是官方介紹文
"為什麼使用CodeCombat?

想學程式嗎? 你不需要課程。你需要的只是大量的時間去"玩"程式。

寫程式應該是有趣的。當然不是 「耶!拿到獎章了。」 的有趣, 而是 「媽我不要出去玩,我要寫完這段!」 般引人入勝。這是為甚麼CodeCombat被設計成多人對戰「遊戲」,而不是遊戲化「課程」。在你對這遊戲無法自拔之前,我們是不會放棄的─幫然,這個遊戲,將是有益於你的。

如果你要沉迷遊戲的話,就來沉迷CodeCombat,成為科技時代的魔法師吧!"
用這款遊戲教Jimmy小朋友編寫程式碼,擺脫單純教IDE工具過程的無聊沉悶,一般寫程式要時時注意的"眉眉角角",如少寫一個括號或逗號等文法錯誤,codeCombat很貼心的隨時提示,所謂的物件導向程式設計對資訊系學生可能是半學期的課程,可是在CodeCombat遊戲系統是自然而然的一件事,話不多說直接給它玩就對了

不需註冊直接按開始遊戲就可以玩,若過了幾關覺得好玩再註冊也不遲,註冊時會保留歷史紀錄



一開始要選擇遊戲主角,還有與遊戲互動的程式語言,我比較熟Javascript,所以就選它



遊戲的主角擁有的第一項裝備就是靴子,靴子這個物件有四個方法(method)可以使用,moveUp/上移, moveDown/下移, moveRight/右移, moveLeft/左移



第一關會提示初學者輸入moveDown,小朋友比較不習慣鍵盤輸入,建議直接複製貼上



如果熟悉鍵盤輸入的話,在程式編輯視窗輸入"this.",遊戲會自動帶出物件方法選單



很貼心的告訴玩家,正在輸入的方法有何作用,小朋友雖然看不太懂英文,多嘗試執行幾次其實也猜得出來



少打個分號;,遊戲也會告訴你修正程式,幫助玩家學習除錯,這對日後正式寫程式開發軟件很有助益



第一關總是很簡單,只要使用moveRight/右移 moveDown/下移, moveRight/右移三個方法,便能順利到達寶物所在,按下執行便能知曉你計畫的路線對不對?



闖關成功!!!