拚命玩遊戲就能學寫程式! 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. 喔!!!這個我在國小時有玩過!!!!!當時我對程式很有興趣呢~(現在也是呢~)

    回覆刪除

張貼留言

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

這個網誌中的熱門文章

ChatGPT Search 實測:用 AI 搜尋生成即時報導、摘要文章、整理改寫內容

Slack 完整教學與上手心得:找到正確的團隊溝通之道

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

Google NotebookLM 免費中文 AI 筆記實例教學,老師、學生、創作者利器

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

為什麼大家愛用 Trello ?最佳整理教學讓事情井然有序

畫張圖說得更清楚! Napkin 用 AI 幫你的簡報文章手繪視覺思考圖

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

Miro 遠距工作開視覺會議的免費強大白板,專案圖解實例教學

Notion 表單兩個應用案例教學:建立客服網頁,讓專案團隊回報資料更方便