[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.69,0:00:04.24,Default,,0000,0000,0000,,一粒寶石,一粒很好的寶石! Dialogue: 0,0:00:04.24,0:00:08.28,Default,,0000,0000,0000,,但你知嗎?如果能夠把寶石串成一行總比一顆寶石好! Dialogue: 0,0:00:08.28,0:00:12.56,Default,,0000,0000,0000,,當然,我們知道一串寶石最好的排列方式是弄個迴圈 Dialogue: 0,0:00:12.56,0:00:16.16,Default,,0000,0000,0000,,我們用一個 for 迴圈畫出一行 12 個寶石 Dialogue: 0,0:00:16.16,0:00:19.52,Default,,0000,0000,0000,,由左至右橫跨螢幕 Dialogue: 0,0:00:19.52,0:00:22.30,Default,,0000,0000,0000,,好像那樣,因此那是一個 Dialogue: 0,0:00:22.30,0:00:31.19,Default,,0000,0000,0000,,for (定義新函數 i 等於 0; i 比 12 少; i ++) Dialogue: 0,0:00:31.19,0:00:36.43,Default,,0000,0000,0000,,然後我們把這條線移到這裏 Dialogue: 0,0:00:36.43,0:00:40.30,Default,,0000,0000,0000,,現在我們有 12 夥寶石,但它們卻是在右方一個疊著一個 Dialogue: 0,0:00:40.30,0:00:43.40,Default,,0000,0000,0000,,記住,我們要令它們在螢幕上橫向分佈 Dialogue: 0,0:00:43.40,0:00:45.94,Default,,0000,0000,0000,,那就是我們得要更改 X Dialogue: 0,0:00:45.94,0:00:49.52,Default,,0000,0000,0000,,還有 36 現在就是 X,但我們想要它每次都不同 Dialogue: 0,0:00:49.52,0:00:51.86,Default,,0000,0000,0000,,就是說我們要讓它因 i 而變動 Dialogue: 0,0:00:51.86,0:00:56.33,Default,,0000,0000,0000,,我們可以做的是,例如 i 乘 36 Dialogue: 0,0:00:56.33,0:01:02.69,Default,,0000,0000,0000,,所以第一個是 0,下一個是 36,再下一個是 72,以此類推 Dialogue: 0,0:01:02.69,0:01:04.58,Default,,0000,0000,0000,,好!現在我們有了一串寶石 Dialogue: 0,0:01:04.58,0:01:07.100,Default,,0000,0000,0000,,這使我想起印第安納‧瓊斯或阿拉丁裏面的場景 Dialogue: 0,0:01:07.100,0:01:11.31,Default,,0000,0000,0000,,當英雄發現了地下寶藏、很多寶石時 Dialogue: 0,0:01:11.31,0:01:13.73,Default,,0000,0000,0000,,但他們常常比我們現在發現更多的寶石 Dialogue: 0,0:01:13.73,0:01:17.31,Default,,0000,0000,0000,,不只是一串寶石,而是一堆寶石! Dialogue: 0,0:01:17.31,0:01:21.61,Default,,0000,0000,0000,,那麼我們可以怎樣使寶石 Dialogue: 0,0:01:21.61,0:01:24.81,Default,,0000,0000,0000,,佈滿整個畫面? Dialogue: 0,0:01:24.81,0:01:30.64,Default,,0000,0000,0000,,我們可以由重複 for 迴圈開始,複製、貼上 Dialogue: 0,0:01:30.64,0:01:34.56,Default,,0000,0000,0000,,然後每次都更改 y Dialogue: 0,0:01:34.56,0:01:37.69,Default,,0000,0000,0000,,我們會把它改成 60,然後 90 Dialogue: 0,0:01:37.69,0:01:42.31,Default,,0000,0000,0000,,現在我們有三行寶石了。酷! Dialogue: 0,0:01:42.31,0:01:45.50,Default,,0000,0000,0000,,但……這顯得有點悶,因為我做的 Dialogue: 0,0:01:45.50,0:01:49.19,Default,,0000,0000,0000,,只是複製、貼上和更改 y Dialogue: 0,0:01:49.19,0:01:52.86,Default,,0000,0000,0000,,我們以往一般當我們察覺寫了一個像這個的編碼時 Dialogue: 0,0:01:52.86,0:01:57.02,Default,,0000,0000,0000,,我們會說︰哦,或許我們只需要一個迴圈罷 Dialogue: 0,0:01:57.02,0:01:58.61,Default,,0000,0000,0000,,但我們已經在用一個迴圈 Dialogue: 0,0:01:58.61,0:02:03.85,Default,,0000,0000,0000,,有什麼辦法避免重複的複製貼上呢? Dialogue: 0,0:02:03.85,0:02:09.52,Default,,0000,0000,0000,,辦法就是我們所謂的嵌入式For迴圈 Dialogue: 0,0:02:09.52,0:02:12.13,Default,,0000,0000,0000,,我們要弄一個外迴圈 Dialogue: 0,0:02:12.13,0:02:14.85,Default,,0000,0000,0000,,這個迴圈就是當我們來到螢幕下方時需要注意的東西 Dialogue: 0,0:02:14.85,0:02:19.23,Default,,0000,0000,0000,,然後我們內迴圈便會繼續執行它目前的指令 Dialogue: 0,0:02:19.23,0:02:21.98,Default,,0000,0000,0000,,從左至右走 Dialogue: 0,0:02:21.98,0:02:24.01,Default,,0000,0000,0000,,讓我告訴你這是什麼一回事 Dialogue: 0,0:02:24.01,0:02:29.85,Default,,0000,0000,0000,,因此for-我們這次使用一個不同的變數,名叫 j,因為我們已使用 i Dialogue: 0,0:02:29.85,0:02:37.27,Default,,0000,0000,0000,,所以 for (定義新函數 j 等於 0; j 少於 13; j++) Dialogue: 0,0:02:37.27,0:02:41.100,Default,,0000,0000,0000,,好,這個就會成為我們的外迴圈,會執行上至下的指令 Dialogue: 0,0:02:41.100,0:02:48.24,Default,,0000,0000,0000,,接下來我們把其中一個之前的 for 迴圈放進裏面 Dialogue: 0,0:02:48.24,0:02:53.27,Default,,0000,0000,0000,,更正一下縮排,刪除原來的編碼,好了! Dialogue: 0,0:02:53.27,0:02:59.11,Default,,0000,0000,0000,,現在我們要做的是把它們疊起來 Dialogue: 0,0:02:59.11,0:03:01.97,Default,,0000,0000,0000,,那就是要改 y,是吧? Dialogue: 0,0:03:01.97,0:03:04.31,Default,,0000,0000,0000,,我們剛才在複製貼上時已經更改了 Dialogue: 0,0:03:04.31,0:03:06.11,Default,,0000,0000,0000,,所以 Y 一直是 90 Dialogue: 0,0:03:06.11,0:03:09.44,Default,,0000,0000,0000,,我們想要 y 在每一行都不同 Dialogue: 0,0:03:09.44,0:03:16.19,Default,,0000,0000,0000,,就如 x 取決於 i 一樣,我們要讓 y 也因 j 而改變 Dialogue: 0,0:03:16.19,0:03:24.66,Default,,0000,0000,0000,,我們可以把這個改為 j 乘 30 Dialogue: 0,0:03:24.66,0:03:29.93,Default,,0000,0000,0000,,好!好!很多寶石!好極! Dialogue: 0,0:03:29.93,0:03:31.78,Default,,0000,0000,0000,,那這又做了什麼 Dialogue: 0,0:03:31.78,0:03:38.34,Default,,0000,0000,0000,,外迴圈弄了這個變數 j,把 j 增加至 13 Dialogue: 0,0:03:38.34,0:03:44.34,Default,,0000,0000,0000,,每次執行外迴圈命令時,它也會執行內迴圈命令 Dialogue: 0,0:03:44.34,0:03:48.67,Default,,0000,0000,0000,,內迴圈創造了變數 i,而 i 會增加到 12 Dialogue: 0,0:03:48.67,0:03:55.36,Default,,0000,0000,0000,,每次內迴圈執行命令時,就會畫一個在 x 和 y 軸上的圖像, x 和 y 是基於終止 i 和 j Dialogue: 0,0:03:55.36,0:03:59.61,Default,,0000,0000,0000,,因此 i 比 j 更常改變 Dialogue: 0,0:03:59.61,0:04:05.24,Default,,0000,0000,0000,,要更明白這個東西,不妨來把 i 和 j 的值顯示出來 Dialogue: 0,0:04:05.24,0:04:09.28,Default,,0000,0000,0000,,我會在影像前後加上 // Dialogue: 0,0:04:09.28,0:04:12.03,Default,,0000,0000,0000,,然後設定一個填滿的顏色 Dialogue: 0,0:04:12.03,0:04:16.80,Default,,0000,0000,0000,,我會用一個文字控制器去顯示 j 的值,輸入 j Dialogue: 0,0:04:16.80,0:04:22.02,Default,,0000,0000,0000,,然後我會把它放到這個適當的地方。好 Dialogue: 0,0:04:22.02,0:04:26.01,Default,,0000,0000,0000,,我們可以看到 j 是由 0 到 12 Dialogue: 0,0:04:26.01,0:04:32.02,Default,,0000,0000,0000,,這基本上就是我們一排排寶石的位置 Dialogue: 0,0:04:32.02,0:04:35.68,Default,,0000,0000,0000,,我們會把 i 顯示出來,看看它如何變動 Dialogue: 0,0:04:35.68,0:04:43.07,Default,,0000,0000,0000,,給 i 不同的顏色 Dialogue: 0,0:04:43.07,0:04:46.48,Default,,0000,0000,0000,,我們會把 i 放到某處 Dialogue: 0,0:04:46.48,0:04:50.27,Default,,0000,0000,0000,,我們更改 it’s x 使它會在畫面上橫跨螢幕 Dialogue: 0,0:04:50.27,0:04:54.69,Default,,0000,0000,0000,,我們也給 y 更改 Dialogue: 0,0:04:54.69,0:04:59.56,Default,,0000,0000,0000,,現在我們看到 i 是由 0 到 11 Dialogue: 0,0:04:59.56,0:05:04.69,Default,,0000,0000,0000,,而 i,正如之前所說,變得更頻密 Dialogue: 0,0:05:04.69,0:05:08.78,Default,,0000,0000,0000,,這一行的編碼比這一行編碼執行得更多 Dialogue: 0,0:05:08.78,0:05:13.86,Default,,0000,0000,0000,,因為當這個內迴圈執行時,這一行便會執行 Dialogue: 0,0:05:13.86,0:05:19.53,Default,,0000,0000,0000,,而這一行只會在外迴圈執行時執行 Dialogue: 0,0:05:19.53,0:05:22.14,Default,,0000,0000,0000,,希望 i 和 j 的形象化 Dialogue: 0,0:05:22.14,0:05:26.97,Default,,0000,0000,0000,,可以使你明白這些嵌入式For迴圈究竟發生了什麼事 Dialogue: 0,0:05:26.97,0:05:30.48,Default,,0000,0000,0000,,現在回到我們的寶石那裏,它們是很酷的東西啊! Dialogue: 0,0:05:30.48,0:05:34.07,Default,,0000,0000,0000,,利用嵌入式For迴圈,你們可以做到很多事情 Dialogue: 0,0:05:34.07,0:05:37.23,Default,,0000,0000,0000,,如果你想一想世界上所有東西都看似 Dialogue: 0,0:05:37.23,0:05:39.60,Default,,0000,0000,0000,,平面網格、西洋象棋格、網格 Dialogue: 0,0:05:39.60,0:05:44.56,Default,,0000,0000,0000,,星條旗上的星星、酷的圖案和背景圖畫 Dialogue: 0,0:05:44.56,0:05:47.46,Default,,0000,0000,0000,,要是開始你的想像,就不如玩一下這個編碼程式 Dialogue: 0,0:05:47.46,0:05:49.81,Default,,0000,0000,0000,,就嘗試改動影像 Dialogue: 0,0:05:49.81,0:05:53.80,Default,,0000,0000,0000,,我會由改成心型開始 Dialogue: 0,0:05:53.80,0:05:57.80,Default,,0000,0000,0000,,讓你知道我有多麼喜愛嵌入式For迴圈!喔~~