Scratch 遊戲設計─高效版刮刮樂 (Scratch Card)
按住滑鼠左鍵刮開!
JavaScript 版本 (適合手機與行動裝置)
https://phosphorus.github.io/app.html?id=167670723&turbo=false&full-screen=true
概念上是透過可以執行網頁服務的主機,來處理 Let's Encrypt 的 challenge。使用 FTP 方式掛載 dcs.tn.edu.tw 的檔案系統,讓 dehydrated 程式可以寫入到 dcs.tn.edu.tw 主機的 .well-known 目錄,以利後續 challenge 動作。最後,將產出的私鑰與憑證相關檔案轉換成 *.pfx 格式,匯入至 cloud.tn.edu.tw 平台。
以 curlftpfs 掛載 dcs.tn.edu.tw 目錄 (以下使用 autofs 自動掛載)
# vim /etc/auto.misc chpsxoops -fstype=fuse,rw,umask=002 :curlftpfs#ftp\://chpsxoops\\chpsadmin\:密碼\@ftp.dcs.tn.edu.tw
# mkdir -p /misc/chpsxoops/site/wwwroot/.well-known/acme-challenge/
# vim /misc/chpsxoops/site/wwwroot/web.config <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <mimeMap fileExtension="." mimeType="text/plain" /> </staticContent> </system.webServer> </configuration>
# cd /etc # git clone https://github.com/lukas2511/letsencrypt.sh.git
# vim /etc/letsencrypt.sh/dcs.config WELLKNOWN=/misc/chpsxoops/site/wwwroot/.well-known/acme-challenge # /etc/letsencrypt.sh/dehydrated -c -d chpsxoops.dcs.tn.edu.tw --config /etc/letsencrypt.sh/dcs.config # INFO: Using main config file /etc/letsencrypt.sh/dcs.config Processing chpsxoops.dcs.tn.edu.tw + Checking domain name(s) of existing cert... unchanged. + Checking expire date of existing cert... + Valid till Sep 24 02:17:00 2017 GMT (Longer than 30 days). Skipping renew!
# cd /etc/letsencrypt.sh/certs/chpsxoops.dcs.tn.edu.tw # openssl pkcs12 -export -out /tmp/xoops.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
Scratch 條件判斷常見問題─兩個互補的 IF-THEN 判斷式
以下左右兩側看似等價的條件判斷式,其實並不相等。
在未涉入時間因素(程式執行狀態隨時間變化)下,以上右側的條件判斷並不會出現錯誤。
右側兩個條件判斷,會進行兩次的條件評估(evaluation),可以先後涵蓋「大於5」與「不大於5」的所有情況,並執行對應的動作。
但右側為兩次獨立的條件判斷,且涉入時間因素。即前一個條件判斷式的對應動作,如果改變了「變數X」的值,隨後第二次條件判斷式,將不如預期可以涵蓋「不成立」的那一部份。
以下程式,特別凸顯左右兩側程式的差異及潛在的問題,應避免使用兩個互補的 IF-THEN 判斷式來代替單一的 IF-THEN-ELSE。
Scratch 訊息廣播接收 (同步與非同步執行)
Synchronous vs. Asynchronous Execution
Scratch 中內建許多像是程序 (procedure)、事件驅動 (event-driven)、並行 (concurrency) 與訊息廣播接收這類的溝通方式 (Synchronous and asynchronous execution) 等,都是程式執行流程的進階控制和策略,使用者卻可輕易的運用於設計中。
以下範例,嘗試以簡化的方式呈現出「同步」與「非同步」執行的概念。
Scratch 遊戲設計─顏色辨識大考驗
這是一個顏色辨識的遊戲,原始構想來自以下社群媒體網站。
http://tw.vonvon.me/quiz/1298?utm_viral=88
這只是一個簡單的遊戲雛形,遊戲玩法為選出與其他顏色不同的物件。
可調整以下參數,改變難易程度。
遊戲設計使用以下技巧與功能:
https://scratch.mit.edu/projects/167168175/
Scratch 視覺短期記憶遊戲設計─小猴吃香蕉
這是一個視覺短期記憶的遊戲,原始構想來自以下網站。
http://www.abcya.com/baby_chick_maze.htm
電子書
http://odata.tn.edu.tw/ebooktagapi/Intro/Index2?id=de309644afce45d38bca047b96c08fed
這只是一個簡單的遊戲雛形,遊戲玩法如下:
遊戲設計使用以下技巧與功能:
Scratch 學生特色作品─小星星亮晶晶 (Shining Star)
運用分身 (clone) 成就大數量的個體,個體間展示與眾不同的特色,看似一致卻又具有細微差異,正如同存在於大自然間的萬事萬物。
TinkerCAD 3D物件進階組合技巧
Scratch 中邏輯判斷 (AND、OR、NOT) 的替代寫法
條件判斷中需要正確的陳述條件,將所需的範圍表示出來,或排除在外。
在未俱備邏輯運算的概念前,可以透過條件式本身的結構和順序來達成同樣的效果。
下列三個範例,分別提供對應的替代語法。左式為進階的邏輯運算,右式為簡單的條件判斷。在教學上可以相輔相成,便於說明概念。
有時,也可以解釋 Short-circuit evaluation (短路求值)。
Scratch 終極密碼猜數字完整教案
整裡出本學期當中的一個主題式遊戲教學,幾乎涵蓋了大部份的基礎概念。
教學過程中學生的問題與想法,也忠實的紀錄下來,藉以提供教學者省思,做為概念澄清的參考。
https://class.tn.edu.tw/uploads/tad_web/1384/news/file/guess_number.pdf