Learn to Code 1 - 算法解析

算法是Learn to Code 1 的最后一章鹃觉, 在這里小朋友們需要用到learn to code 1. 中學(xué)到的所有知識专酗,來巧妙地解決問題,幫助byte 走出迷宮盗扇。

在完成算法作業(yè)前祷肯,我們來復(fù)習(xí)下learn to code 1 中學(xué)到的幾個知識點:

1. 指令

我們通過發(fā)出一條指令,來讓byte 完成一個動作

2. function?

我們可以把多條指令編制成一組疗隶,再給這個組起個新名字佑笋, 這就得到了一個function?

在function 中,我們特別要注意function 的語法斑鼻。它的聲明和調(diào)用

3. 循環(huán)

我們學(xué)習(xí)了for 循環(huán)(循環(huán)多少次)和while 循環(huán)( 循環(huán)到什么時候為止)

4. 邏輯控制

我們學(xué)習(xí)了邏輯變量蒋纬,就是一個事物狀態(tài)的標志(true ?還是false), 以及邏輯變量的組合運算。(坚弱!蜀备, &&, ||)?

也學(xué)習(xí)了如何通過考察邏輯變量的值荒叶,選擇程序的分支( if ...else if ... else)

然后碾阁,duangduangduagn, 我們就可以開始學(xué)習(xí)算法了!

這個難不倒我們小朋友些楣,它的路線是這樣的


由于地圖是動態(tài)的脂凶,我們不能確切地知道byte 從起點到終點需要走幾步宪睹。幸好,我們可以選擇while 循環(huán)蚕钦,讓byte 一直走下去容客,直到路的盡頭 — 標志是一個關(guān)閉狀態(tài)的switch

于是我們可以確定程序框架如下:

While ?!isOnClosedSwitch {

向前一步()

}

從起點到終點的過程中肠虽,我們“向前一步”可以有很多種走法结榄。在這里咧织,我們分析出了3種不同的“步伐”

1. ?只要右邊沒有被擋住,我們就往右拐走一步 (想象一只溜出洞口食听,沿著墻角爬行的小老鼠)


2. 如果前方無路,我們就掉頭


3. 否則污茵,就往前走一步

否則樱报,是需要借助前兩句的幫助才能表達的。于是我們連接如下

此外泞当,只要路上有寶石迹蛤,我們都去取下它。

因為有沒有寶石襟士,和如何走之間盗飒,并沒有必然聯(lián)系,我們可以分兩次獨立地判斷陋桂,就是把它們分別放在兩個if 中逆趣。

我們也觀察到,只有在走到路的盡頭(isBlocked) 的時候嗜历,寶石才會出現(xiàn)宣渗,所以我們也可以把對寶石的判斷放在 isBlocked 發(fā)生的時候才進行。這樣可以減少電腦的一次判別梨州,讓它跑得稍微快一點痕囱, 當(dāng)然這點差別我們小朋友是感覺不到的,但是當(dāng)你讓電腦一次跑幾百萬暴匠,幾千萬條指令的時候鞍恢,尤其很多人同時跑的時候,這個差別就很明顯了每窖。所以我們小朋友從一開始學(xué)習(xí)帮掉,也可以稍稍注意一下程序運行效率的事情,不要讓電腦做不必要的工作岛请。

所以旭寿,我們也可以改寫為

或者,既然每次路的盡頭都恰好出現(xiàn)一顆寶石崇败,我們就寫為:


注意盅称,關(guān)于寶石的判斷消失了肩祥,只要到了路的盡頭,我們就往回轉(zhuǎn)缩膝,并且收集寶石混狠。

完整代碼如下


(由于圖片大小超過限制,我們在下一篇求解其他的迷宮)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疾层,一起剝皮案震驚了整個濱河市将饺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痛黎,老刑警劉巖予弧,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異湖饱,居然都是意外死亡掖蛤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門井厌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚓庭,“玉大人,你說我怎么就攤上這事仅仆∑髟蓿” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵墓拜,是天一觀的道長港柜。 經(jīng)常有香客問我,道長撮弧,這世上最難降的妖魔是什么潘懊? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮贿衍,結(jié)果婚禮上授舟,老公的妹妹穿的比我還像新娘。我一直安慰自己贸辈,他們只是感情好释树,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著擎淤,像睡著了一般奢啥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘴拢,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天桩盲,我揣著相機與錄音,去河邊找鬼席吴。 笑死赌结,一個胖子當(dāng)著我的面吹牛捞蛋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柬姚,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拟杉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了量承?” 一聲冷哼從身側(cè)響起搬设,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撕捍,沒想到半個月后拿穴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡忧风,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年贞言,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阀蒂。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖弟蚀,靈堂內(nèi)的尸體忽然破棺而出蚤霞,到底是詐尸還是另有隱情,我是刑警寧澤义钉,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布昧绣,位于F島的核電站,受9級特大地震影響捶闸,放射性物質(zhì)發(fā)生泄漏夜畴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一删壮、第九天 我趴在偏房一處隱蔽的房頂上張望贪绘。 院中可真熱鬧,春花似錦央碟、人聲如沸税灌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽菱涤。三九已至,卻和暖如春洛勉,著一層夾襖步出監(jiān)牢的瞬間粘秆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工收毫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留攻走,地道東北人殷勘。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像陋气,于是被迫代替她去往敵國和親劳吠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,798評論 0 38
  • 8086匯編 本筆記是筆者觀看小甲魚老師(魚C論壇)《零基礎(chǔ)入門學(xué)習(xí)匯編語言》系列視頻的筆記,在此感謝他和像他一樣...
    Gibbs基閱讀 37,207評論 8 114
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法炉菲,類相關(guān)的語法堕战,內(nèi)部類的語法,繼承相關(guān)的語法拍霜,異常的語法嘱丢,線程的語...
    子非魚_t_閱讀 31,632評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)祠饺,斷路器越驻,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 編程派微信號:codingpy 本文約有 15000 字,讀完可能需要 20 分鐘道偷。原文地址: 500lines缀旁。...
    羅義的夏天閱讀 65,020評論 0 22