# Day 17 阿嬤的猜字遊戲!(中) 前論我們剛談完要如何設計出號玩的 Hangman 遊戲,這次我們要正式開始撰寫程式碼了。 有沒有很期待:)(被拖走 ### 神秘的單字 這個遊戲怎麼能少了單字呢?所以我們的第一步就是抽選一個看起來還不錯的單字(阿沒錯我就是在 拖字數:) ``` var 神奇的單字 = [ "abrogate", "repeal", "annul", "synonym"]; var 神奇的單字分身 = 神奇的單字[Math.floor(Math.random() * 神奇的單字.length)]; console.log(神奇的單字分身); ``` 在這例的上半部,我們準備好了我精心挑選的「單字們」分別是:"abrogate"(廢除,取消),"repeal"(廢止,撤消,放棄),"annul"(廢除),"synonym"(同義字)。 在此例的下半部,我們使用了`Math.floor`、`Math.random`、`length`這三個大將~ ### 空格的奧秘(x 緊接著,我們就要拿出我們上一章所提到的 "空罐子",來填滿我們的 "草莓果醬"(ㄟ這樣講好像怪怪 的。拉回正題,反正就是要創建一個數組,然後創造填字遊戲內的空格。看我操作: ``` var 空格 = []; for (var i = 0; i < 神奇的單字.length; i++) { 空格[i] = "_"; } var 陣列 = 神奇的單字.length; ``` 先不用著急,還沒寫完,跑不出來沒關係,因為這只是整個程式碼的冰山一角而已!!(不必驚訝 ### 整個遊戲的循環 嘿看過來,循環階段來啦!! ``` while (陣列 > 0); ``` 嗯嗯不用懷疑,就是這麼的短:)雖然看起來很短,但是要解釋起來還是不容易的呢! 我們使用`while`迴圈,他會一直反覆檢查`陣列 > 0`是否為`true` 每當參賽者猜對了一個字母,循環體就會修改`陣列`,若參賽者完成整個單字, `陣列`他的值就會變成 0,並且結束迴圈。 ### 目前狀態 我們也需要展示他目前的狀態阿!能讓玩家更清楚知道,鵝我寫到哪裡了: ``` alert(陣列.join(" ")); ``` 用`join`方法把`陣列`數組串成一個字符串,用空格字符當作間隔,並且用alert方法顯 示給參賽者查看。 # 小總結 我們今天寫了冰山一角的程式碼,下一章應該會把整個程式碼寫出來,也要看進度啦,不然屬實說,還剩下蠻多的程式碼...那就下一章見啦!拜拜!~