拚命玩遊戲就能學寫程式! CodeCombat 還有中文版


「遊戲化學習」是這幾年的教育熱潮之一,雖然說讓上課變得更生動有趣、更多好玩互動本來就是自古以來的通則,但透過網路與數位技術的進步,我們有更多新鮮工具與互動方法可以應用到學習上。例如我在電腦玩物就整理過一篇:「值得嘗試!10 款遊戲化學習 App 讓你更喜歡面對挑戰」。

而今天要介紹的「 CodeCombat 」這個線上網站,或者說「線上遊戲」,則是要讓初學者透過玩遊戲來學習寫程式,而且他有完整的繁體中文內容,不需要任何寫程式的經驗,小學生就能上手,在有趣的奇幻世界與戰鬥關卡中學會各種程式的基本技巧。

「 CodeCombat 」創立於 2013 年,並且是一個開放原始碼專案,所以很快地就擁有了世界各國語言版本,包含繁體與簡體中文,關卡數量、可學習程式語言也持續增加,目前已經擁有 110 多個免費的關卡,能夠學習 Python、 JavaScript、 Lua、 CoffeeScript、Clojure 等不同程式語言,這些語言能夠運用到遊戲設計、網頁應用、 App 的開發上。

2015/11/17 新增玩知名遊戲學寫程式! Code.org 一小時學會寫小遊戲
2016 新增:程式碼教學利器!可協作免費漂亮線上程式碼編輯器
2016/1/17 新增:Google Drive 安裝免費寫程式軟體!協作網頁編輯器
2016/4/20 新增:Google 玩遊戲學程式中文化線上課程 Blockly Games
2017/6/20 新增更適合兒童的選擇:CodeMonkey 玩遊戲學寫程式,兒童也上手的遊戲化教學網站




1. 學任何東西都不應該無聊:玩程式,學程式


當你打開「 CodeCombat 」網站,你不會覺得這是一個讓你看不懂的程式碼學習網站,因為他的網站外觀看起來就像是一個魔獸爭霸風格的線上遊戲,而且當你實際玩玩看,你會發現過程真的就是英雄要去打怪、尋寶與解謎,只是搭配了程式語言的學習。

雖然我們無法期待初學者玩過「 CodeCombat 」後就能直接成為程式工程師,但是在整個遊戲的過程中,我們還是能夠學會每種程式語言的基本語法、邏輯架構、設定變量。

所以「 CodeCombat 」自稱是設計給 9 歲以上想要學習程式碼的學生來練習的遊戲,因為遊戲幫助我們快速熟練,如果在課堂上還搭配老師的講解,就更能事半功倍。





2. 循序漸進的遊戲學習關卡


「 CodeCombat 」甚至連上手都非常簡單,完全不需要額外指導,任何玩過遊戲的朋友也一定都能立刻開始遊戲,也能從中學習到各種程式語言的基礎。

我們用 Google 或 Facebook 就能登入「 CodeCombat 」,這時候要挑選一位英雄,並選擇自己想要學習的程式語言。



接著在幾個遊戲大章節中,我們將會一步一步從基礎語法開始,到相對複雜的變量設定,把這個程式語言邏輯循序漸進的理解。



而章節裡就是一個一個遊戲關卡,但每一場小戰役,都是精心設計的一個程式語言小技巧。

到這裡為止,相信沒有人會覺得有任何難度,任何人一定都能進入。





3. 各種武器道具就是你學會的程式指令


而在「 CodeCombat 」中最大的不同就是把遊戲裡的命令操作、武器道具都變成程式語言的指令,我可以使用語法去攻擊敵人,或是當我獲得技能寶典時可以學會讓程式自動迴圈的新指令。

於是我就能在打怪、尋寶的過程中,慢慢理解每個程式語法的作用。



而且完全不懂程式碼的朋友也不要擔心。

因為「 CodeCombat 」並非是要考驗你遊戲技巧的遊戲,所以他的關卡裡都有非常詳盡的提示,會教你怎麼輸入程式語言來命令角色行動,當你輸入錯誤時,也有清楚的提示教你為什麼這樣的語法會出錯。

這些引導全部都有中文化。



於是在簡單幾關的過程中,很快的我們就知道程式指令的邏輯,怎麼設定一連串互相引發的行為,怎麼命令對某個物件產生行動等等。

後面就會有愈來愈複雜的命令方式,這讓你學會程式語言概念,也可以用來熟練程式語言的輸入,或是懂得怎麼設計出更有效的程式碼。

因為關卡也有不同的成就等級,如果可以用更精簡的指令完成動作,可以獲得更高分。




4. 多人連線練習與老師學生部落


更進一步的,在自學程式語言之外,「 CodeCombat 」還設計了團隊學習程式語言的模式。

在「多人連線」中,我們可以根據不同難度來跟全世界學習程式的朋友進行連線對戰,例如一個簡單對戰中我們要比誰可以更快輸入一連串指令,在戰鬥中讓自己存活更久。



而在「部落」模式中,老師可以開設一個社團讓學生加入,這樣一來可以觀察社團中每一個人的學習進度,並且互相激勵。

你也想開始學寫程式嗎?或者你想要帶學生一個練習寫程式?那麼完全中文化的「 CodeCombat 」,或許是一個玩遊戲學程式的好選擇。

延伸閱讀相關文章:
  1. PhET 科學實驗互動模擬教學,免費中文教材破億下載
  2. HabitRPG 教學:把養成好習慣設計成好玩的生活遊戲
  3. 從這款桌遊學會人生的「目標管理」為什麼很重要?

「 CodeCombat 」網站

轉貼本文時禁止修改,禁止商業使用,並且必須註明來自電腦玩物原創作者 esor huang(異塵行者),及附上原文連結:拚命玩遊戲就能學寫程式! CodeCombat 還有中文版


留言

  1. 很有趣 但是用chrome玩會lag (切換場景時)

    回覆刪除
    回覆
    1. 好像有一點點,我是用 Chromebook 玩,但也還好,起碼關卡進行時是沒問題的^^

      刪除
  2. 真是太有趣了!! 希望破關之後我的python能突飛猛進.....

    回覆刪除
  3. 這真是有趣~ 感謝分享~
    馬上來去玩遊戲,不對,是學寫程式~ :D

    回覆刪除
  4. 我提供另外一個類似的網站叫Codemonkey, 這個的特色是大部分的指令與名稱可以用滑鼠點選, 相對更方便.
    https://www.playcodemonkey.com/

    回覆刪除
    回覆
    1. 這個網站我也有注意到,感謝你的推薦

      刪除
  5. 回覆
    1. 是的,我是选择学习python,到达第五关以后就强制要求付费了。

      刪除
    2. 我想您說的應該是第五張大地圖(第五個大章節開始),確實免費版部分是開放前面四個大地圖,約100多個小關卡

      刪除
    3. 我想他是指,第一大關的第五小關,因為我的也是這樣...
      會一直要求付費、告知家長、優惠
      是使用中文版,有註冊帳號...

      刪除
    4. 第五小關是打星號的那關嗎?只要跳過那關,後面的關卡也還是都可以玩,也就是不包含特殊關卡外,是有 100 多個關卡是免費的(這也是看官方說明上說的)

      刪除
    5. www.codecombat.cn
      这个网址是国内服务器的,不需要付费

      刪除
  6. 真是太感謝! 自己試玩起來比 Scratch 有趣,馬上拿給我兒子試試看。

    回覆刪除
  7. 付費是指第五大關還是小關?我玩了二十幾關,只有星形關卡進不去,看起來使用者年齡分佈都在小朋友,難度也很低,不然是可以付費玩一下,滿有趣的。

    回覆刪除
  8. 我之前一直有在陸陸續續的玩,覺得非常好入門!

    回覆刪除
  9. 多謝介紹,一直都想暸解一下程式語言,我是只想有個基本概念就好。玩了一下也蠻有趣,消磨一下時間不用每次都玩接龍@_@。

    回覆刪除
    回覆
    1. 這個用來了解基本概念一定是足夠的

      刪除
  10. 有物件導向、演算法、資料結構、離散數學嗎?
    本身很缺這些東西

    有的話等之後有錢再去玩過一遍

    回覆刪除
    回覆
    1. 這個我也不是很懂,歡迎高手幫忙回答

      刪除
    2. 這個是考研究所要學的吧,已經超出簡單遊戲能做出來的範例了拉~

      刪除
  11. 作者已經移除這則留言。

    回覆刪除
  12. 剛註冊加入教師,同時也請學生註冊加入學生,但教師開課讓學生進入後,學生只能玩第一大關與競技場(计算机科学的介绍),教師無法開其他關卡給學生,好像是沒有可用的註冊碼的問題~

    回覆刪除
  13. 我加入了一個班,後來想離開這個班級,
    請問我要如何離開呢?

    回覆刪除
  14. 喔!!!這個我在國小時有玩過!!!!!當時我對程式很有興趣呢~(現在也是呢~)

    回覆刪除

張貼留言

為了避免垃圾廣告留言過多,開始測試「留言管理」機制,讓我可以更容易回應讀者留言,並更簡單過濾掉廣告,但只要不是廣告留言都會通過審核。

這個網誌中的熱門文章

全家沖印、 7-11 列印照片誰好用?立可得與 ibon教學+比較表

微軟 Bing AI 繪圖工具 Image Creator 免費開放,30秒輕鬆生成圖片

Google Maps 我的地圖完全教學!規劃自助旅行攻略

3個 ChatGPT 輸入到輸出實驗,第二大腦筆記用 AI 生成文章報告

Arc 瀏覽器 windows 版測試心得,用四大介面改造升級專注工作流

Google 表單的 10 個專業問卷調查設計秘密教學

如何為筆記命名,建立搜尋規則?我的標題、分類、標籤命名法

Draw.io 中文線上製作流程圖首選!專業水準完全免費

如何用 ChatGPT 加速生成一份有圖有文的簡報,實戰案例教學

Google 表單自動關閉回覆教學:時間人數到達就過期