在與同學聊的過程中我覺得,除了做好遊戲之外,有必要再為每個觀念設計基本題目來引導同學做練習,就像打電動遊戲都會有個新手村,來訓練同學,畢竟以前沒有過這樣的方式,還是需要引導才對。
2014/10/7代班,經由題目訓練引導思考的投影片
條件機率:
圖解繁複機率
一開始並沒有想到這點,想說就只要教同學如何設計題目,接著讓他們互相出題考對方就好了,後來回想葉丙成老師的BJOnline與PaGamO,在台大實施遊戲教學時,BJOnline是只有讓同學互相設計題目互相出,而PaGamO則是用了台大同學出過的題目與一位研究生不斷生題目出來給全球的華人修課學生做。
現在我當然是無法採用PaGamO的模式,沒時間拼命生題目出來給同學玩,畢竟每天都還是要研究code構思遊戲,先前準備周二教材浪費了不少時間,現在該補回來,但是如果只做到要求自己每天花半小時複習機率,一個禮拜出個一題兩題題目,那麼還是有機會達成的,基本上我是不打算要求兩個碩一學弟去做出題目這種事,如果他們有興趣再讓他們練習出題目吧,畢竟每天寫張元翔的作業應該就花不少時間了。
程式碼解析
學習threex.animation.js,頓時有種好久不見的感覺 XD 。看了一下紀錄,回想起過去在為this._keyframes這種寫法苦惱
- Identifiers & Reserved Words | O’Reilly | Javascript: The Definitive Guide
- An identifier is simply a name. In JavaScript, identifiers are used to name variables and functions and to provide labels for certain loops in JavaScript code. A JavaScript identifier must begin with a letter, an underscore (_), or a dollar sign ($).
- Values, variables, and literals - JavaScript | MDN
- You use variables as symbolic names for values in your application. The names of variables, called identifiers, conform to certain rules.
看了這幾篇後才想起以前曾看過
- 语法概述 -- JavaScript 标准参考教程(alpha) (搜尋:identifier)
- 標識符(identifier)是用來識別具體對象的一個名稱。最常見的標識符就是變量名,以及後面要提到的函數名。
在閱讀threex.animation.js裡面的code時發現一件有趣的事
THREEx.Animation.prototype.pushKeyframe = function(duration, position){
this._keyframes.push({
duration : duration,
position : position
});
return this; // for chained API
};
為什麼push()裡面是傳{ duration: duration, position: position }
回頭去看W3School
- JavaScript Array Methods
- The push() method adds a new element to an array (at the end)
回頭看在Array裡面element的定義
- JavaScript Arrays
- You Can Have Different Objects in One Array
- JavaScript variables can be objects. Arrays are special kinds of objects.
- Because of this, you can have variables of different types in the same Array.
- You can have objects in an Array. You can have functions in an Array. You can have arrays in an Array.
有趣了,再來讓我們看看Javascript裡大括號"curly braces或curly bracket,{"的意義吧
- js中中括号,大括号使用详解 - 君莫邪儿 - 51CTO技术博客
- { } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。
- Brackets (Parentheses)
小括號讀做"parenthesis,( )",中括號讀做"square brackets [ ]",大括號讀做"braces { }"
這篇的解釋恰好是我要的
閱讀threex.animation.js發現一個有趣的名詞 chained API
- Method Chaining in JavaScript | Gregory Schier // 這篇不錯,講得簡單清楚
- The typical way to enable method chaining is to return the current object at the end of every function.
在threex.animation.js這裡定義的method幾乎都用在threex.minecraftcharheadanim.js與threex.minecraftcharbodyanim.js裡面,來進行method chaining
稍微思考一下,我並不需要去另外寫一個像threex.animation.js的底層code,只需要寫像是threex.minecraftcharheadanim.js與threex.minecraftcharbodyanim.js的.js檔,在這.js檔裡寫我要的code來實作出連續技的動作即可
沒有留言:
張貼留言