不是電腦科學的學生如何用 Minecraft 來學寫程式

▲ 比起普通版本,我可以在教育版透過編寫吉祥物 (agent)擺放遊戲的方塊來學寫程式。

上個月(19年4月),微軟香港來了我的大學兩次舉辦講座。職員們介紹了遊戲 Minecraft (《我的世界》),並展示他們的其他教育科技在香港的研究項目。雖然我的本科是主修心理學,不過我對這些教育科技很感興趣。總的來說,Minecraft 的確可以令到一些年幼的學生更投入到課堂中,以及以一個不設限的虛擬世界裏讓學生的創意自由發揮。

上次我回顧了自己如何用 OneNote 來寫筆記。今次就講講我自己親身試用及探討一下我如何用這個遊戲學編程。

▲ 穿毛衣握著最新武器三叉戟的我,與我的吉祥物印有在微軟圖示的方塊堆前,沿著燈塔的指路光望上天空。

▼ 「我們很喜歡你這個角度看這個遊戲,Curtis!」

我本身都是 Minecraft 的玩家。自從這個講座才發現這遊戲也可以用在教育上,不只是作休閒娛樂之用。我用了大學提供的試用版,增長了一些編程知識。Minecraft ,即使對我這種不是主修電腦科學的學生。

作為練習,以下我試試如何編寫命令讓 Minecraft 教育版特有的吉祥物 (agent)擺放一個個方塊做一些圖案。自然地,我想不如就試一試「一個微軟公司的標誌」

另外,我亦附上了原始碼在文末。最後還有幕後花絮,講述我之前編程失敗。

聲明:我並沒有受到微軟或遊戲開發商魔讚協同公司的任何補償。

本文亦另備英文版本。English readers may check out the alternative version here.

目錄

前言
1 在 OneNote 中畫設計草圖
2 用 Excel 來仔細計劃方塊
3 用 MakeCode 來寫程式
3A 重覆函數
3B 製造指令
4 終於可以給予指令!
幕後花絮
原始代碼

▼ 在 macOS 上 Minecraft 教育版 1.9.2 版本的遊戲暫停畫面。

1 在 OneNote 中畫設計草圖

學習一個新事物,最好就是動手去做 (hands-on)。首先,我用 Apple Pencil 在 OneNote 中快速繪出那格四格圖案大約在草地上的樣子 — 一個簡單的小舞台。

2 用 Excel 來仔細計劃方塊

打開 Minecraft 之前,我還需要一個再詳細的建築圖則,指明各部件需要用到那一種方塊。透過 Excel ,我可以製作高準確的參考施工圖。不過首先我要選擇所有儲存格,再調整成一個個正方形。

巧用條件化格式來節省時間。我只需要打上一些顏色代碼(如 R=紅色)就可以繪出用甚麼麼染了色的方塊。好!參考圖則預備好了。那我如何讓吉祥物幫我按照這幅圖完成設計呢?

▲ 簡單規劃要用甚麼顏色的方塊。

▼ 條件格式化來標注方塊的位置。

3 用 MakeCode 來寫程式

當進到 Minecraft 的世界之後,我可以在 Mac 上 打 c 或在 iPad 上點一點吉祥物的圖示去打開 Code Builder。一按了這個快捷鍵,吉祥物就會迅間轉移到你的眼前。

3A 重覆函數

我先創造2個函數,來教導吉祥物有甚麼步驟去整出微軟的圖示出來。

在以下的截圖中,右面的函數checkLevel 顧名思意就是用來看看吉祥物所在的層數。視乎層數,我用if 來改變partLpartR 來擺置吉祥物要帶甚麼方塊去填充。(方塊#236, 官方方塊說明)

而左邊的函數levelBuild則用來告訴吉祥物當它每走一步就要在腳下放置相應的方塊。之後,它就會向上升起一層,並返會最初的 X 坐標起點。當一層完成後,變數levelCurrent會加一,給函數checkLevel重新安排新一層的要用上的方塊。

▲ 圖像化表示兩個最重要重覆調用的函數式。每走一步,吉祥物都會擺下新的方塊。

▼ 程式背後對應的施工圖。

3B 製造指令

接著,我就用 “on chat command” 並將它命名成run。這個指令中用了一個變數levelCurrent來決定要要重覆的次數。參看上圖,雖然設計上有七層,但每一層吉祥物只需要兩個函數就可以完成任務。

4 終於可以給予指令!

因為我已經在現場勘探好,我就選在這篇大空地試試。再打 c 或點點最頂聊天圖示顯示聊天界面。輸入預設指令名,即run,來告知吉祥物做事。像現實生活中,只

▼ 一段影片顯示我的吉祥物如何自動建出微軟的圖案出來。多謝您,你才是最辛苦的~

總結:希望更多學校可以應用 Minecraft 這類幫助學習的教育科技

學寫程式倚賴不少通用的技能。它可以訓練我們的決心及培養解決問題的思維。以上的指令其實還可以再優化,例如引入排列 (array)等,還有不同的可能性。

我愛心理學與科技,因為兩者都是為了人類過得更好。我認同人們應該要終生學習。透過這樣進修,人們就能容忍異見、減少偏誤、以及令到自己更靈活變通。

幕後花絮

▲ 真的是幕後,有點凌亂。

▼ 這個「簡單」的圖案花了我不少時間去做。撞板次數太多,雖然會有沮喪的時候,不過只要由頭再看多幾回官方手冊就能明白。

▲ 到最後,我終於找到方向。我一路試錯到我真的能讓我的吉祥物可以按我指令造一個圖案出來!!!

▼ 與我的吉祥物一齊觀看日出。它一直都在我背後密密支持我。

▲ 在 Minecraft 教育版內自拍

Curtis’s Digital Life

Reflection of many techniques, tips that increase one’s value in digital era, by Curtis Chan

🐟Curtis Chan Chun Tsong

Written by

讀心理學,鐘意科技同效率相關題材。A Psychology student is hooked on technologies and productivity. #地鐵迷 #非火車迷 #科幻 #電子化 #硬筆書法#手寫 #metro #digital #handwritten #calligraphy

Curtis’s Digital Life

Reflection of many techniques, tips that increase one’s value in digital era, by Curtis Chan

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade