在上一關(guān)里,我們學(xué)習(xí)了嵌套函數(shù)的方法。實(shí)際上,我們嵌套的每一個(gè)小函數(shù),都是我們對(duì)一個(gè)大問題里的小問題的分解。把本來復(fù)雜的事情分解成可以小步驟完成的任務(wù)。
經(jīng)過前一關(guān)里的操作,你應(yīng)該能體會(huì)到分解的作用了。這一關(guān),我們繼續(xù)用這個(gè)思路來解決一個(gè)更復(fù)雜一點(diǎn)的問題。
在這一關(guān)里,角色要走的路線更為復(fù)雜了。我們還是先用口述的方式幫我們理清一下步驟。
我們發(fā)現(xiàn),角色的工作,除了寶石數(shù)有變化。
其他的,向前走兩步,收集,轉(zhuǎn)身,向前兩步。這個(gè)沒有任何變化。
再變化的就是要回到原點(diǎn)再進(jìn)行轉(zhuǎn)身。
在這里,我們又發(fā)現(xiàn),回到原點(diǎn)再進(jìn)行轉(zhuǎn)身的工作又是重復(fù)的。
我們只要在這個(gè)工作里讓角色完成收集工作回到原點(diǎn)就行了。
是不是,很熟悉。就是我們要寫的第一個(gè)函數(shù)的內(nèi)容。
現(xiàn)在,我們把要執(zhí)行的命令貼出來:
solveRow()
solveRow()
solveRow()
才三個(gè)命令。
那好,我們看看這個(gè)solveRow():
? ? collectGemTurnAround()
? ? collectGemTurnAround()
? ? turnRight()
? ? moveForward()
? ? turnLeft()
看來,關(guān)鍵的收集寶石并返回原來的collectGemTurnAround()很重要了:
? 我們寫下來它, ?collectGemTurnAround():
? ? moveForward()
? ? moveForward()
? ? collectGem()
? ? turnLeft()
? ? turnLeft()
? ? moveForward()
? ? moveForward()
編到這里,你已經(jīng)有很大的進(jìn)步了。繼續(xù)加油。
傳送門:
MacOS Playgrounds學(xué)習(xí) 學(xué)習(xí)編程一 前記--http://www.lxweimin.com/p/a0de277374a4
MacOS Playgrounds 學(xué)習(xí)編程一 第一關(guān) 發(fā)出命令--http://www.lxweimin.com/p/3c85397f1eae
MacOS Playgrounds 學(xué)習(xí)編程一 第二關(guān) 添加新命令--http://www.lxweimin.com/p/4efa5c18dc50
MacOS Playgrounds 學(xué)習(xí)編程一 第三關(guān) 切換開關(guān)--http://www.lxweimin.com/p/00556d6430bf
MacOS Playgrounds 學(xué)習(xí)編程一 第四關(guān) 傳送門練習(xí)--http://www.lxweimin.com/p/47bd57d0193f
MacOS Playgrounds 學(xué)習(xí)編程一 第五關(guān) 發(fā)現(xiàn)并修復(fù)程序錯(cuò)誤--http://www.lxweimin.com/p/5bc9200edbbe
MacOS Playgrounds 學(xué)習(xí)編程一 第六關(guān) 消滅程序錯(cuò)誤練習(xí)--http://www.lxweimin.com/p/f19bd2955ed8
MacOS Playgrounds 學(xué)習(xí)編程一 第七關(guān) 最短路線--http://www.lxweimin.com/p/1ef210253be5
MacOS Playgrounds 學(xué)習(xí)編程一 第八關(guān) 組合新行為--http://www.lxweimin.com/p/f548b1fd3134
MacOS Playgrounds 學(xué)習(xí)編程一 第九關(guān) 創(chuàng)建新函數(shù)--http://www.lxweimin.com/p/22ab39aaea97
MacOS Playgrounds 學(xué)習(xí)編程一 第十關(guān) 收集、切換、重復(fù)--http://www.lxweimin.com/p/e43d60f98bc7
MacOS Playgrounds 學(xué)習(xí)編程一 第十二關(guān) 嵌套模式--http://www.lxweimin.com/p/645f6716217c
MacOS Playgrounds 學(xué)習(xí)編程一 第十三關(guān) 嵌入式階梯--http://www.lxweimin.com/p/d87f9662601d
MacOS Playgrounds 學(xué)習(xí)編程一 第十四關(guān) 尋寶--http://www.lxweimin.com/p/18c73154e46b
MacOS Playgrounds 學(xué)習(xí)編程一 第十五關(guān) 使用循環(huán)--http://www.lxweimin.com/p/f7c0866930ec
MacOS Playgrounds 學(xué)習(xí)編程一 第十六關(guān) 循環(huán)每一側(cè)--http://www.lxweimin.com/p/94d75e9d5eab
MacOS Playgrounds 學(xué)習(xí)編程一 第十七關(guān) 行至邊緣再返回--http://www.lxweimin.com/p/cc7e8095bb9a
MacOS Playgrounds 學(xué)習(xí)編程一 第十八關(guān) 循環(huán)跳躍者--http://www.lxweimin.com/p/99618bef896e
MacOS Playgrounds 學(xué)習(xí)編程一 第十九關(guān) 拓展技能--http://www.lxweimin.com/p/a20810b11d6d
MacOS Playgrounds 學(xué)習(xí)編程一 第二十關(guān) 寶石農(nóng)場(chǎng)--http://www.lxweimin.com/p/8c3808d1a646
MacOS Playgrounds 學(xué)習(xí)編程一 第二十一關(guān) 席卷四處--http://www.lxweimin.com/p/cc7f6a1c34e7
MacOS Playgrounds 學(xué)習(xí)編程一 第二十二關(guān) 檢查開關(guān)--http://www.lxweimin.com/p/e34fb0431b6e
MacOS Playgrounds 學(xué)習(xí)編程一 第二十三關(guān) 使用 else if--http://www.lxweimin.com/p/6414ef7692e2
MacOS Playgrounds 學(xué)習(xí)編程一 第二十四關(guān) 循環(huán)條件代碼--http://www.lxweimin.com/p/a657e47b851d
MacOS Playgrounds 學(xué)習(xí)編程一 第二十五關(guān) 滿足條件時(shí)向上爬--http://www.lxweimin.com/p/4a69a1c3435f
MacOS Playgrounds 學(xué)習(xí)編程一 第二十六關(guān) 定義更巧妙的函數(shù)--http://www.lxweimin.com/p/d61e03e095ae
MacOS Playgrounds 學(xué)習(xí)編程一 第二十七關(guān) 圍困其中--http://www.lxweimin.com/p/88442c7ce61b
MacOS Playgrounds 學(xué)習(xí)編程一 第二十八關(guān) 決策樹--http://www.lxweimin.com/p/0843bd9ae286
MacOS Playgrounds 學(xué)習(xí)編程一 第二十九關(guān) 使用“非”運(yùn)算符--http://www.lxweimin.com/p/be8fa74b6c46
MacOS Playgrounds 學(xué)習(xí)編程一 第三十關(guān) 非之螺旋--http://www.lxweimin.com/p/f42905cbaed1
MacOS Playgrounds 學(xué)習(xí)編程一 第三十一關(guān) 檢查這個(gè)與那個(gè)--http://www.lxweimin.com/p/67b1c6e16b6a
MacOS Playgrounds 學(xué)習(xí)編程一 第三十二關(guān) 檢查這個(gè)或那個(gè)--http://www.lxweimin.com/p/d94a67728a93
MacOS Playgrounds 學(xué)習(xí)編程一 第三十三關(guān) 邏輯迷宮--http://www.lxweimin.com/p/62bbc0ce2490
MacOS Playgrounds 學(xué)習(xí)編程一 第三十四關(guān) 當(dāng)……時(shí)運(yùn)行代碼--http://www.lxweimin.com/p/9aa41733c6d0
MacOS Playgrounds 學(xué)習(xí)編程一 第三十五關(guān) 創(chuàng)建更巧妙的while循環(huán)--http://www.lxweimin.com/p/3fdfb33a443f
MacOS Playgrounds 學(xué)習(xí)編程一 第三十六關(guān) 正確選取工具--http://www.lxweimin.com/p/e5ed25be735e
MacOS Playgrounds 學(xué)習(xí)編程一 第三十七關(guān) 四乘以四--http://www.lxweimin.com/p/81ed2e6009d4
MacOS Playgrounds 學(xué)習(xí)編程一 第三十八關(guān) 轉(zhuǎn)身--http://www.lxweimin.com/p/a3c9bae7d6a2
MacOS Playgrounds 學(xué)習(xí)編程一 第三十九關(guān) 富饒之地--http://www.lxweimin.com/p/077743cdfcdd
MacOS Playgrounds 學(xué)習(xí)編程一 第四十關(guān) 套嵌循環(huán)--http://www.lxweimin.com/p/d8670c9e7962
MacOS Playgrounds 學(xué)習(xí)編程一 第四十一關(guān) 隨機(jī)矩形--http://www.lxweimin.com/p/61b916f61e37
MacOS Playgrounds 學(xué)習(xí)編程一 第四十二關(guān) 始終右轉(zhuǎn)--http://www.lxweimin.com/p/b7cf92fbfcaa
MacOS Playgrounds 學(xué)習(xí)編程一 第四十三關(guān) 右手定則--http://www.lxweimin.com/p/9ccd20151c96
MacOS Playgrounds 學(xué)習(xí)編程一 第四十四關(guān) 調(diào)整算法--http://www.lxweimin.com/p/10c2a0de990d
MacOS Playgrounds 學(xué)習(xí)編程一 第四十五關(guān) 征服迷宮--http://www.lxweimin.com/p/b4d731fe3639
MacOS Playgrounds 學(xué)習(xí)編程一 第四十六關(guān) 左轉(zhuǎn)還是右轉(zhuǎn)--http://www.lxweimin.com/p/cd7fa32316e5
MacOS Playgrounds 學(xué)習(xí)編程一 第四十七關(guān) 向左走,向右走--http://www.lxweimin.com/p/b9b1dc9c8f2e
MacOS Playgrounds學(xué)習(xí) 學(xué)習(xí)編程一 小結(jié)后記--http://www.lxweimin.com/p/8ad6485e447a