左轉還是右轉
練習:寫下自己的演算法來通關。
簡介
目前為止你已經改善了不少演算法;是時候來練習學到的東西,並從頭開始編寫你自己的演算法。
若要完成這個關卡,你需要依照路徑前往每個開關處,決定要左轉還是右轉。嘗試在關卡中找出模式,以推敲出該轉哪個方向。
- 在腦海中走過虛擬碼,思考如何切換六個開關並得到寶石。
- 寫出你的程式碼,測試演算法並在需要時進行調整。
講解
最外層是一個 while 迴圈,在玩家沒有到達寶石或開關時會一直運行。在迴圈內,玩家會不斷向前移動以尋找寶石和開關。
當玩家到達開關時,這個 if...else if 陳述式會檢查左側和前方是否有障礙物。
如果左側和前方都有障礙物,玩家會切換開關並向左轉。如果只有前方有障礙物,玩家會切換開關並向右轉。
當玩家到達寶石時,迴圈停止運行並執行 collectGem() 函數以收集寶石。
解答
請務必嘗試解題
請同學務必嘗試自己解題,不要直接看答案。學習程式時最好的學習方法是自己嘗試解題,程式設計不會只有一種寫法,請通過不斷的嘗試和優化來找到屬於自己最好的解答。
後記
這段程式碼展示了如何使用 Swift Playground 中的迴圈和條件陳述式來自動尋找寶石和開關,並且可以用來幫助學生理解 Swift 編程的基本概念。