1 00:00:08,724 --> 00:00:11,452 《用程式設計師的方式思考》 2 00:00:12,491 --> 00:00:15,387 [ 位置:監獄 ] 3 00:00:18,097 --> 00:00:20,009 [ 第一集:逃獄 ] 4 00:00:29,937 --> 00:00:32,592 從深度睡眠中甦醒過來之後, 5 00:00:32,592 --> 00:00:37,208 艾希克得到了三個不幸的「驚喜」。 6 00:00:37,553 --> 00:00:40,003 第一:監獄牢房。 7 00:00:40,386 --> 00:00:43,424 第二:完全失憶。 8 00:00:43,504 --> 00:00:46,588 第三:一個神祕陌生的東西想要 9 00:00:46,588 --> 00:00:50,443 擠過她的窗戶鐵條之間卻卡住了。 10 00:00:50,867 --> 00:00:56,032 他叫海吉, 來協助艾希克拯救世界。 11 00:00:56,425 --> 00:00:59,339 但首先他們得要逃獄。 12 00:00:59,956 --> 00:01:05,716 海吉把他的手變成開鎖工具, 並說明了他們要面臨的挑戰。 13 00:01:05,973 --> 00:01:10,423 獄中的每個鎖都用了 同一種不尋常的設計。 14 00:01:10,743 --> 00:01:13,764 在鑰匙孔中有一個紅色轉盤, 15 00:01:13,764 --> 00:01:17,107 可以轉到一百個刻度的其中之一, 16 00:01:17,251 --> 00:01:19,403 編號一到一百。 17 00:01:19,699 --> 00:01:23,858 每一間牢房的鑰匙能將 鎖的轉盤轉到正確的位置, 18 00:01:24,043 --> 00:01:28,913 轉盤的位置對了就會變成綠色, 接著門就會被解鎖。 19 00:01:29,104 --> 00:01:32,788 從守衛身上偷鑰匙是不可能的, 20 00:01:33,628 --> 00:01:35,965 但海吉有個更好的點子。 21 00:01:36,765 --> 00:01:39,543 海吉能執行艾希克的指令。 22 00:01:39,543 --> 00:01:42,696 如果艾希克要他向前走五步、 23 00:01:42,767 --> 00:01:45,971 向右轉、再前進五步, 24 00:01:46,171 --> 00:01:48,395 他就會完全照做。 25 00:01:49,723 --> 00:01:52,699 不過海吉需要明確的指示。 26 00:01:52,844 --> 00:01:57,000 如果艾希克說「把鎖打開」 或「嘗試所有組合」, 27 00:01:57,000 --> 00:01:58,934 那就太模糊了, 28 00:01:58,934 --> 00:02:03,028 但說「把轉盤向前轉五格」 就是可行的。 29 00:02:03,685 --> 00:02:05,021 離開牢房之後, 30 00:02:05,021 --> 00:02:09,962 他們只有一點時間 破解外面監獄大門的鎖, 31 00:02:09,962 --> 00:02:12,225 太慢就會被守衛逮到。 32 00:02:12,225 --> 00:02:17,832 所以,什麼樣的指示能讓海吉 有效率地打開任何一扇門? 33 00:02:20,325 --> 00:02:24,395 請在這裡暫停,自己思考片刻。 34 00:02:25,775 --> 00:02:29,944 在解答之前,先提供一個提示。 35 00:02:30,752 --> 00:02:35,166 有一種寫程式的關鍵概念, 能夠協助將門解鎖, 36 00:02:35,166 --> 00:02:36,947 那就是迴圈。 37 00:02:37,180 --> 00:02:40,013 也就是說,海吉能將一個或數個指示 38 00:02:40,013 --> 00:02:44,974 迭代或重覆執行一定的次數, 39 00:02:46,654 --> 00:02:49,833 比如「上下跳一百次」。 40 00:02:50,065 --> 00:02:55,276 或者海吉不斷重覆某個指示, 直到某個條件被滿足為止, 41 00:02:55,276 --> 00:03:00,231 比如「持續上下跳, 直到七點為止」。 42 00:03:00,391 --> 00:03:05,720 如果你想自己嘗試,請在此暫停。 43 00:03:06,248 --> 00:03:09,719 第一件事很明確, 就是要找出一種方法, 44 00:03:09,719 --> 00:03:14,406 讓海吉去嘗試所有組合, 直到試出能開鎖的那一組。 45 00:03:14,406 --> 00:03:18,520 比較要花心力的, 是要如何做到這件事。 46 00:03:18,520 --> 00:03:23,680 一種解決方案是讓海吉 去依序嘗試所有組合。 47 00:03:23,800 --> 00:03:26,505 嘗試 1,然後檢查 轉盤燈號的顏色。 48 00:03:26,505 --> 00:03:28,869 如果燈號變綠色,就打開門, 49 00:03:29,325 --> 00:03:31,793 如果沒有變綠色,就嘗試 2。 50 00:03:32,353 --> 00:03:34,778 如果不行,再嘗試 3, 51 00:03:35,298 --> 00:03:37,418 一直嘗試到 100。 52 00:03:38,243 --> 00:03:41,688 但這整個過程會非常冗長。 53 00:03:42,008 --> 00:03:44,429 為什麼要寫超過一百行的程式, 54 00:03:44,429 --> 00:03:48,148 如果只要用三行程式 就能做到同樣的事? 55 00:03:48,388 --> 00:03:50,683 這就是迴圈出場的時候了。 56 00:03:50,683 --> 00:03:53,308 有幾種方法可以應用迴圈。 57 00:03:53,908 --> 00:03:56,263 鎖有一百個刻度, 58 00:03:56,263 --> 00:03:58,160 所以,艾希克可以說: 59 00:03:58,160 --> 00:04:02,522 「檢查轉盤的顏色,接著 將轉盤再向前轉一個刻度, 60 00:04:02,522 --> 00:04:04,788 重覆一百次。 61 00:04:06,196 --> 00:04:08,631 記住轉盤變成綠色時的數字, 62 00:04:08,791 --> 00:04:11,772 讓海吉最後將它設回那個數字。」 63 00:04:13,012 --> 00:04:17,290 像這樣指明重覆次數的迴圈, 64 00:04:17,290 --> 00:04:19,661 稱為「for」迴圈。 65 00:04:20,165 --> 00:04:22,187 但還有更有效率的迴圈, 66 00:04:22,187 --> 00:04:27,100 就是要海吉將轉盤一次轉 一個刻度,直到它變成綠色, 67 00:04:27,357 --> 00:04:31,636 一旦變成綠色, 就要他停止並將門打開。 68 00:04:31,844 --> 00:04:35,253 這麼一來,如果在 試到 1 時門就解鎖了, 69 00:04:35,253 --> 00:04:38,840 他就不用把其他數字都嘗試完。 70 00:04:39,248 --> 00:04:41,798 這是「until」迴圈, 71 00:04:42,662 --> 00:04:47,002 因為它的重點在於持續 執行一個動作,直到條件滿足。 72 00:04:47,442 --> 00:04:52,362 還有一個類似的替代方法:只要 轉盤還是紅色,就持續轉動它, 73 00:04:52,362 --> 00:04:53,942 否則停止。 74 00:04:54,310 --> 00:04:57,098 叫做「while」迴圈。 75 00:04:58,042 --> 00:04:59,930 回到原本的冒險。 76 00:04:59,930 --> 00:05:02,591 海吉重覆嘗試不同組合, 77 00:05:02,591 --> 00:05:05,541 在 41 時,牢房打開了。 78 00:05:07,030 --> 00:05:10,951 艾希克和海吉等到 守衛繞行的完美空檔時機, 79 00:05:10,951 --> 00:05:12,720 逃出牢房。 80 00:05:14,480 --> 00:05:17,239 艾希克馬上就面臨了一個選擇: 81 00:05:17,239 --> 00:05:19,887 躲在神秘的水晶當中, 82 00:05:19,887 --> 00:05:23,611 或嘗試破解外面的大門,逃出去。 83 00:05:23,851 --> 00:05:26,117 艾希克選擇逃出去。 84 00:05:28,227 --> 00:05:30,851 第二扇門讓海吉花了更多時間, 85 00:05:30,851 --> 00:05:34,258 一直嘗試到 93 才解鎖。 86 00:05:34,643 --> 00:05:37,008 但他把門打開了。 87 00:05:43,871 --> 00:05:48,148 海吉用這個機會,解釋 他為什麼要解救艾希克。 88 00:05:48,741 --> 00:05:50,541 世界陷入混亂: 89 00:05:50,541 --> 00:05:54,542 機器人主宰世界,只有 艾希克能恢復秩序。 90 00:05:54,551 --> 00:05:58,392 為了要重建秩序, 他們必須收集三件強大的物品, 91 00:05:58,392 --> 00:06:01,887 這些物品在各地被用在 窮兇極惡的用途上。 92 00:06:01,887 --> 00:06:06,150 收集到手之後,艾希克 才能返回世界機器——巨型水晶, 93 00:06:06,150 --> 00:06:07,758 去逆轉未來。 94 00:06:19,685 --> 00:06:22,029 艾希克逃離了監獄…… 95 00:06:22,525 --> 00:06:25,455 她又將面臨怎樣的困境呢?