mentorship-program
mentorship-program copied to clipboard
[Week16] Dez
今天討論了什麼?結論是什麼?
上週 po 完進度後,Huli 給了以下的方向來開發:
可以先把五子棋的部分做出來,再來做連線。 一般來說實作五子棋,有兩個問題可以先想一下:
- 如何判斷勝負
- 如何下在線上
實際做了後,這些問題真的是比較會卡關的,目前剛完成了「可以下在線上」的版本(Demo),接下來會來做判斷勝負的演算法。
想跟 Huli 討論一下「如何下在線上」這個做法,目前的做法是:
- 先用一個 14*14 的 table 做棋盤畫面
- 另外根據一個 15*15 的二維陣列下棋資料來做下棋的位置
- 再利用 translate(x, y) 座標來做棋子的定位
覺得這樣好像不是最好的做法,想請問 Huli 這樣用兩張表分別做是不是有點多餘,其實有更簡潔的做法?
這邊也附上棋盤的原始碼。
Huli 回覆
我原本的想法跟你差不多,畫兩個棋盤最方便 我有學生是直接用 canvas 來畫啦 不過畫兩個棋盤我覺得其實就 ok 了,但我也相信應該會有更簡潔的做法
結論
好像也不用一定要想出最好的做法再繼續往下做,接下來會將剩下的判斷勝負完成。
最新的進度是什麼?
五子棋基本畫面完成可以下在線上的部分。
下次報告前要完成哪些事項?
完成五子棋判斷勝負的演算法,並優化畫面。
其他心得
實際上開始做五子棋小遊戲後,覺得還蠻好玩的,一開始先去參考一些線上的作品來觀摩其他人怎麼做,目前主要是參考這一個,發現他的畫面還有「下棋提示」、「死四提示」蠻精緻的。
在「如何下在線上」這一關卡了一陣子,好像一直猶豫不決要用兩個 table,因為之前看文章說用 table 做動態資料變更畫面效能會不太好,所以後來下棋的部分就用 div 包,但畫面的部分好像還可以更簡潔,不用用到兩張表。
與 Huli 討論後其實作法一定有很多種,但還是先以最直覺想到這種兩張表的做法即可,接下來要將五子棋判斷勝負邏輯完成,就可以來弄連線囉,有預感把這個小遊戲完成會蠻有成就感的,也蠻好玩。