WEBVTT 00:00:08.724 --> 00:00:11.452 《用程式設計師的方式思考》 00:00:12.491 --> 00:00:15.387 [ 位置:監獄 ] 00:00:18.097 --> 00:00:20.009 [ 第一集:逃獄 ] NOTE Paragraph 00:00:29.937 --> 00:00:32.592 從深度睡眠中甦醒過來之後, 00:00:32.592 --> 00:00:37.208 艾希克得到了三個不幸的「驚喜」。 NOTE Paragraph 00:00:37.553 --> 00:00:40.003 第一:監獄牢房。 NOTE Paragraph 00:00:40.386 --> 00:00:43.424 第二:完全失憶。 NOTE Paragraph 00:00:43.504 --> 00:00:46.588 第三:一個神祕陌生的東西想要 00:00:46.588 --> 00:00:50.443 擠過她的窗戶鐵條之間卻卡住了。 NOTE Paragraph 00:00:50.867 --> 00:00:56.032 他叫海吉, 來協助艾希克拯救世界。 00:00:56.425 --> 00:00:59.339 但首先他們得要逃獄。 NOTE Paragraph 00:00:59.956 --> 00:01:05.716 海吉把他的手變成開鎖工具, 並說明了他們要面臨的挑戰。 NOTE Paragraph 00:01:05.973 --> 00:01:10.423 獄中的每個鎖都用了 同一種不尋常的設計。 00:01:10.743 --> 00:01:13.764 在鑰匙孔中有一個紅色轉盤, 00:01:13.764 --> 00:01:17.107 可以轉到一百個刻度的其中之一, 00:01:17.251 --> 00:01:19.403 編號一到一百。 00:01:19.699 --> 00:01:23.858 每一間牢房的鑰匙能將 鎖的轉盤轉到正確的位置, 00:01:24.043 --> 00:01:28.913 轉盤的位置對了就會變成綠色, 接著門就會被解鎖。 00:01:29.104 --> 00:01:32.788 從守衛身上偷鑰匙是不可能的, 00:01:33.628 --> 00:01:35.965 但海吉有個更好的點子。 NOTE Paragraph 00:01:36.765 --> 00:01:39.543 海吉能執行艾希克的指令。 00:01:39.543 --> 00:01:42.696 如果艾希克要他向前走五步、 00:01:42.767 --> 00:01:45.971 向右轉、再前進五步, 00:01:46.171 --> 00:01:48.395 他就會完全照做。 00:01:49.723 --> 00:01:52.699 不過海吉需要明確的指示。 00:01:52.844 --> 00:01:57.000 如果艾希克說「把鎖打開」 或「嘗試所有組合」, 00:01:57.000 --> 00:01:58.934 那就太模糊了, 00:01:58.934 --> 00:02:03.028 但說「把轉盤向前轉五格」 就是可行的。 NOTE Paragraph 00:02:03.685 --> 00:02:05.021 離開牢房之後, 00:02:05.021 --> 00:02:09.962 他們只有一點時間 破解外面監獄大門的鎖, 00:02:09.962 --> 00:02:12.225 太慢就會被守衛逮到。 00:02:12.225 --> 00:02:17.832 所以,什麼樣的指示能讓海吉 有效率地打開任何一扇門? NOTE Paragraph 00:02:20.325 --> 00:02:24.395 請在這裡暫停,自己思考片刻。 NOTE Paragraph 00:02:25.775 --> 00:02:29.944 在解答之前,先提供一個提示。 NOTE Paragraph 00:02:30.752 --> 00:02:35.166 有一種寫程式的關鍵概念, 能夠協助將門解鎖, 00:02:35.166 --> 00:02:36.947 那就是迴圈。 00:02:37.180 --> 00:02:40.013 也就是說,海吉能將一個或數個指示 00:02:40.013 --> 00:02:44.974 迭代或重覆執行一定的次數, 00:02:46.654 --> 00:02:49.833 比如「上下跳一百次」。 00:02:50.065 --> 00:02:55.276 或者海吉不斷重覆某個指示, 直到某個條件被滿足為止, 00:02:55.276 --> 00:03:00.231 比如「持續上下跳, 直到七點為止」。 NOTE Paragraph 00:03:00.391 --> 00:03:05.720 如果你想自己嘗試,請在此暫停。 NOTE Paragraph 00:03:06.248 --> 00:03:09.719 第一件事很明確, 就是要找出一種方法, 00:03:09.719 --> 00:03:14.406 讓海吉去嘗試所有組合, 直到試出能開鎖的那一組。 00:03:14.406 --> 00:03:18.520 比較要花心力的, 是要如何做到這件事。 NOTE Paragraph 00:03:18.520 --> 00:03:23.680 一種解決方案是讓海吉 去依序嘗試所有組合。 00:03:23.800 --> 00:03:26.505 嘗試 1,然後檢查 轉盤燈號的顏色。 00:03:26.505 --> 00:03:28.869 如果燈號變綠色,就打開門, 00:03:29.325 --> 00:03:31.793 如果沒有變綠色,就嘗試 2。 00:03:32.353 --> 00:03:34.778 如果不行,再嘗試 3, 00:03:35.298 --> 00:03:37.418 一直嘗試到 100。 NOTE Paragraph 00:03:38.243 --> 00:03:41.688 但這整個過程會非常冗長。 00:03:42.008 --> 00:03:44.429 為什麼要寫超過一百行的程式, 00:03:44.429 --> 00:03:48.148 如果只要用三行程式 就能做到同樣的事? NOTE Paragraph 00:03:48.388 --> 00:03:50.683 這就是迴圈出場的時候了。 00:03:50.683 --> 00:03:53.308 有幾種方法可以應用迴圈。 00:03:53.908 --> 00:03:56.263 鎖有一百個刻度, 00:03:56.263 --> 00:03:58.160 所以,艾希克可以說: 00:03:58.160 --> 00:04:02.522 「檢查轉盤的顏色,接著 將轉盤再向前轉一個刻度, 00:04:02.522 --> 00:04:04.788 重覆一百次。 00:04:06.196 --> 00:04:08.631 記住轉盤變成綠色時的數字, 00:04:08.791 --> 00:04:11.772 讓海吉最後將它設回那個數字。」 00:04:13.012 --> 00:04:17.290 像這樣指明重覆次數的迴圈, 00:04:17.290 --> 00:04:19.661 稱為「for」迴圈。 NOTE Paragraph 00:04:20.165 --> 00:04:22.187 但還有更有效率的迴圈, 00:04:22.187 --> 00:04:27.100 就是要海吉將轉盤一次轉 一個刻度,直到它變成綠色, 00:04:27.357 --> 00:04:31.636 一旦變成綠色, 就要他停止並將門打開。 00:04:31.844 --> 00:04:35.253 這麼一來,如果在 試到 1 時門就解鎖了, 00:04:35.253 --> 00:04:38.840 他就不用把其他數字都嘗試完。 00:04:39.248 --> 00:04:41.798 這是「until」迴圈, 00:04:42.662 --> 00:04:47.002 因為它的重點在於持續 執行一個動作,直到條件滿足。 00:04:47.442 --> 00:04:52.362 還有一個類似的替代方法:只要 轉盤還是紅色,就持續轉動它, 00:04:52.362 --> 00:04:53.942 否則停止。 00:04:54.310 --> 00:04:57.098 叫做「while」迴圈。 NOTE Paragraph 00:04:58.042 --> 00:04:59.930 回到原本的冒險。 NOTE Paragraph 00:04:59.930 --> 00:05:02.591 海吉重覆嘗試不同組合, 00:05:02.591 --> 00:05:05.541 在 41 時,牢房打開了。 00:05:07.030 --> 00:05:10.951 艾希克和海吉等到 守衛繞行的完美空檔時機, 00:05:10.951 --> 00:05:12.720 逃出牢房。 NOTE Paragraph 00:05:14.480 --> 00:05:17.239 艾希克馬上就面臨了一個選擇: 00:05:17.239 --> 00:05:19.887 躲在神秘的水晶當中, 00:05:19.887 --> 00:05:23.611 或嘗試破解外面的大門,逃出去。 00:05:23.851 --> 00:05:26.117 艾希克選擇逃出去。 00:05:28.227 --> 00:05:30.851 第二扇門讓海吉花了更多時間, 00:05:30.851 --> 00:05:34.258 一直嘗試到 93 才解鎖。 00:05:34.643 --> 00:05:37.008 但他把門打開了。 00:05:43.871 --> 00:05:48.148 海吉用這個機會,解釋 他為什麼要解救艾希克。 NOTE Paragraph 00:05:48.741 --> 00:05:50.541 世界陷入混亂: 00:05:50.541 --> 00:05:54.542 機器人主宰世界,只有 艾希克能恢復秩序。 00:05:54.551 --> 00:05:58.392 為了要重建秩序, 他們必須收集三件強大的物品, 00:05:58.392 --> 00:06:01.887 這些物品在各地被用在 窮兇極惡的用途上。 00:06:01.887 --> 00:06:06.150 收集到手之後,艾希克 才能返回世界機器——巨型水晶, 00:06:06.150 --> 00:06:07.758 去逆轉未來。 NOTE Paragraph 00:06:19.685 --> 00:06:22.029 艾希克逃離了監獄…… 00:06:22.525 --> 00:06:25.455 她又將面臨怎樣的困境呢?