# Teaching Assistant Case Study (Tsung Ting Tu) *by Tim tsungtingdu@gmail.com* ## 作業批改 ### 作業一 (小明) [小明的作業](https://repl.it/@lighthouse/TAassessmentguessnumberjs) Good @小明,你的程式可以順利接受到使用者輸入的數字,並讓電腦開始玩猜數字,看來你對於程式的 input/output 以及迴圈的使用有一定的掌握囉 如果想要讓遊戲變得更好,這裡有幾點小提醒 1. 目前對於使用者輸入的內容有做初步的判斷:如果大於 100 或小於 1 的話就會請使用者重新輸入。但如果使用者輸入的不是數字,就會造成非預期的結果出現。這裡可以想想怎麼排除非數字型態的資料喔 2. 另外目前 while 迴圈限制最大的猜測次數為 50 次,但電腦不一定能順利在 50 次以內猜到。若要達到題目的要求,建議可以移除最大猜測次數 3. 若能夠順利完成上面兩點的話,最後可以來看看 coding style。好的 coding style 可以讓你自己與別人能夠快速了解程式碼的內容喔,也能夠加快 debug 的速度。你可以參考[JavaScript Standard Style](https://standardjs.com/rules-zhtw.html),裡面有許多的規則,但這裡我建議你可以先從下面這裡開始 ```JS # 原程式碼排版 if(answer>100 || answer < 1){ answer = Number(prompt("please assign an answer between 1 and 100?")) } else{ (下略) } # 建議排版 if (answer > 100 || answer < 1) { answer = Number(prompt("please assign an answer between 1 and 100?")) } else { (下略) } ``` 適當的縮排讓大家能夠一目瞭然 if/else 所控制的範圍。另外在括號、大於、小於、等於 ... 等符號前後增加一格空白也能讓閱讀上更加舒適喔!動手試試看! 如果有重新繳交作業,或有任何問題,都歡迎 tag 助教喔 ### 作業二 (小華) [小華的作業](https://repl.it/@lighthouse/taassessmentguessnumberjs2) Good @小華!這份作業有幾個不錯的地方 1. 可以順利接受使用者輸入的資訊,並讓電腦開始玩猜數字 2. 想辦法讓電腦減少猜測次數,提升程式效率 3. 封裝程式碼,讓 functions 可以被重複使用 如果想要讓遊戲變得更好,這裡有幾點小提醒 1. 目前對於使用者輸入的內容有做初步的判斷:如果大於 100 或小於 1 的話就會請使用者重新輸入。但如果使用者輸入的不是數字,就會造成非預期的結果出現。這裡可以想想怎麼排除非數字型態的資料喔 2. 在 function 與變數的命名上有一些需要注意的地方,譬如 ```JS function randomNumberInRangeX1ToX2(x1, x2){ newRandomNumber = 1 + x1 + Math.floor(Math.random() * (x2 - x1 - 1)) return newRandomNumber } ``` 盡可能讓變數名稱有意義,讓別人能夠快速理解這個變數裡面的內容,因此建議可以把 `x1` `x2` 改為 `number1` `number2` ```JS function consoleLog(timesOfGuess, computerGuess, warningMessage){ console.log(`#${timesOfGuess}: computer's guess is ${computerGuess}. ${warningMessage}`) } ``` 另外在命名上也盡量避免可能的混淆情況發生,譬如 `consoleLog` 和 `console.log` 就非常接近。因此建議可以把 function name 改為 `log` 或是其他名稱會比較好喔。動手試試看! 如果有重新繳交作業,或有任何問題,都歡迎 tag 助教喔 *** ## 設計批改指標與批改指引 ### 作業二 **Excellent** 批改指標:滿足 Good 的條件,並滿足以下(批改指引)的條件 批改指引: 1. 能夠處理非數字型別的輸入 2. 有撰寫程式註解 3. 符合 JavaScript Standard Style 的風格 **Good** 批改指標:能夠使用 Mocha.js 撰寫測試,並滿足 FizzBuzz 的要求 批改指引: 1. 測試包含以下 case 並能正確判別 * 3 的倍數的數字 * 5 的倍數的數字 * 15 的倍數的數字 * 非以上倍數的數字 **Try Harder** 批改指標:無法能使用 Mocha.js 撰寫測試,並滿足 FizzBuzz 的要求 批改指引:無法滿足 Good 的要求 *** fyi, slide page 19 當中的 Model answer: Demo 連結為 404
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up