WNM_601: Inside Programming : Week 7 in class
這週的作業是延續上週的進度,將簡單能跑的剪刀石頭布遊戲,變成像真正的遊戲。上週做出來的程式主要強調在js的部分,要做出一個可以可以讓使用者選擇想出的拳(剪刀、石頭或布)來跟電腦(隨機)比誰贏。需要能夠連續玩,而不用刷新頁面。額外可以考慮的是計分板或重新玩。更高難度可以挑戰玩家出什麼拳贏的機率比較高之類的輔助程式。
在課堂前段,可以試玩同學的遊戲,還蠻有趣的,這是第一次可以看到別人的作業。大部份的人都有做出基本的遊戲,但有不少有些小問題。有人做出電腦跑樂透的效果(剪刀石頭布快速變換),最後停在其中一個拳,再由這個拳跟玩家出的拳來判斷輸贏。
課堂中段,老師有簡單示範一下他怎麼寫出這個程式的。也舉出班上程式常見的問題。像是1.無法連續玩 2. 無法出相同的拳 3. 程式碼重複太多。
無法出相同的拳 好像比較容易發生在選拳頭是用 radio buttom 或是 下拉式選單
由於我是三個按鈕都是做成buttom 所以不太知道要譖麼解決這個問題
不過我猜應該是要在按再來一次的按鈕時,要清空原本使用者選到的值
否則電腦不知道使用者重複按相同的鈕需要再跑一次程式
至於程式碼重複太多
有不少人的程式是rock paper scissors 分三個function
實際上,應該在function 中加入傳入值 就可以只寫一個function去判斷輸贏,減少重複
至於要怎麼寫判斷
最簡單的就是七種(平手 以及剩下六種可能)
困難一點是五種 (平手 用數字代表拳 會有四種組和可以規程兩種 再加上 另外兩種例外)
可以畫出出拳3*3的表格幫助判斷 如何歸納成五種
雖然五種跟七種沒有差很多,但是五種感覺似乎比較有邏輯
或許等到以後寫大的程式,在這種小細節就可以慢慢拉出差距了吧
課堂後段,就是修改程式,有問題可以隨時請老師來協助。老師主要是幫學生看程式是哪出問題,還有該怎麼改善。如果有想要做的效果但是做不出來也可以問老師。
所以在課堂我就請教老師怎麼讓按鈕按一次就鎖住,讓使用者需要按再來一次才可以重複玩。以及如何讓除了選到以外的按鈕顏色變淡。