mentor-program-day123

燒腦的一天。

進度

今天終於開始做前人提到的大魔王:五子棋。

目前只做出了基本的版面跟下棋功能:

record

但是判斷輸贏的方法想了一晚還是沒想出來rrrr

只好留到明天繼續戰鬥!加油!

學到的事情

今天剛開始做五子棋時,本來想用圈圈叉叉的資料結構來做:

1
2
3
4
5
const data = [
"O", null, "X",
"O", null, null,
"X", null, null
]

這樣子做以後畫面確實可以運作,但是就卡在判斷輸贏的邏輯不知道該怎麼寫才好。上網查資料找到的全部都是用「二維陣列」的結構來解的。於是只好砍掉重練,乖乖用二維陣列來重做(雖然我真的很不想碰二維的陣列或物件QQ)。

剛開始真的還蠻燒腦的,太久沒碰這種比較複雜的資料結構了,再加上又得用雙層迴圈來處理。好在後來靜下來一會兒後有慢慢釐清思緒,一步一步把基本的東西先寫出來了。

後來也意外地踩到「淺拷貝」的地雷,所以寫了這篇筆記:該來談談淺拷貝(Shallow copy)與深拷貝(Deep copy)了

原本我還想說 JSON.parse(JSON.stringify(data)) 是什麼脫褲子放屁的行為,後來才知道原來這就是 deep copy 阿,真的是太蠢了~

總之,雖然是很燒腦的一天,但也學到了蠻多東西。

題外話

喜歡聽唱歌好聽的人唱歌。我覺得唱歌好難呀。

期許

希望明天能把輸贏的邏輯寫出來!衝了!

用 JavaScript 來寫出轉置矩陣的方式 該來談談淺拷貝(Shallow copy)與深拷貝(Deep copy)了
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×