少兒編程游戲CodeMonkey通關(guān)攻略:第159-165關(guān)

今天我們進(jìn)入“返回”小鎮(zhèn)的后7關(guān)裙犹,即第159關(guān)至第165關(guān)。

應(yīng)某公號(hào)粉絲要求衔憨,第162關(guān)有更仔細(xì)介紹叶圃。

先復(fù)習(xí)一下基礎(chǔ)知識(shí):

基礎(chǔ)知識(shí)

“返回”在編程中經(jīng)常用到。是每個(gè)函數(shù)必備的一部分践图,在我們寫完一個(gè)函數(shù)的時(shí)候掺冠,我們都習(xí)慣性地會(huì)在函數(shù)最后一行寫上return。比如:

return码党;

這樣就不返回任何值德崭。當(dāng)函數(shù)是一個(gè)判斷函數(shù)的時(shí)候,就可以讓函數(shù)返回判斷的結(jié)果揖盘,比如

return yes眉厨;

或者

return no;

當(dāng)然兽狭,我們也可以直接返回一個(gè)判斷語句憾股,比如:

return banana.rotten()

來判斷香蕉是否壞了,如果香蕉壞了椭符,banana.rotten()=yes荔燎,否則banana.rotten()=no。

下面進(jìn)入關(guān)卡~

第159關(guān)

return的意思就是返回销钝,既然函數(shù)已經(jīng)返回了某一個(gè)值有咨,就不會(huì)再執(zhí)行return之后的操作。

在上圖右側(cè)的代碼區(qū)域內(nèi)蒸健,return no之后就不會(huì)再執(zhí)行return yes座享。

因?yàn)槲覀冃枰『镒觛oto banana婉商,所以foo()函數(shù)返回的應(yīng)該是yes。

修改后的代碼如下:

點(diǎn)擊運(yùn)行看效果渣叛!

第160關(guān)

在這一關(guān)里丈秩,我們需要say something來嚇跑烏鴉!

在上圖右側(cè)的代碼框里淳衙,我們已有兩行代碼嚇跑烏鴉蘑秽,但是在嚇跑烏鴉之后呢?

當(dāng)然是讓小猴子goto banana啦箫攀!

在第3行上加上一行代碼就可以啦肠牲,如下:

點(diǎn)擊運(yùn)行看效果!

第161關(guān)

有的時(shí)候靴跛,烏鴉耳朵有點(diǎn)背缀雳,所以小猴子需要不聽地say something,直到烏鴉被嚇跑為止梢睛。

我們可以用crow.watching()這個(gè)函數(shù)來判斷烏鴉是否在看著小猴子肥印,既然crow.watching()函數(shù)是判斷語句,那么crow.watching()函數(shù)自己就會(huì)返回yes或no绝葡。

當(dāng)烏鴉被嚇跑之前深碱,crow.watching()函數(shù)返回yes,那么not crow.watching()返回的就是no藏畅。這個(gè)時(shí)候莹痢,safe()函數(shù)返回的是no。小猴子需要一直say something墓赴,直到烏鴉被嚇跑。

當(dāng)烏鴉被嚇跑之后航瞭,crow.watching()函數(shù)返回no诫硕,那么not crow.watching()返回的就是yes。這個(gè)時(shí)候刊侯,safe()函數(shù)返回的是yes章办。

我們可以把代碼改成:

點(diǎn)擊運(yùn)行看效果!

第162關(guān)

在上圖中滨彻,我們看到有兩只烏鴉藕届,那么很簡(jiǎn)單地,我們可以把上一關(guān)的代碼借鑒過來亭饵,就有一個(gè)這樣的safe函數(shù):

在這些代碼后面休偶,我們需要寫入判斷小猴子是否可以走向香蕉的代碼,如下:

點(diǎn)擊運(yùn)行之后辜羊,我們先不看效果踏兜,先看結(jié)果:

只得到了兩個(gè)星星词顾!

這是因?yàn)槲覀冇玫搅撕鼙康姆椒ǎ昧诉^多的代碼碱妆。

而系統(tǒng)要求我們用6行或者更少的代碼肉盹,才能得到3個(gè)星星!

其實(shí)我們可以壓縮safe函數(shù)疹尾。

在原來的safe函數(shù)上忍,我們用了4行來判斷兩只烏鴉是否在看著小猴子,這是極其浪費(fèi)的纳本。

事實(shí)上窍蓝,我們可以用一行就夠了。

怎么寫饮醇?

還記得我們之前學(xué)到的邏輯語句嗎它抱?and? or朴艰?not观蓄?

因?yàn)槲覀円袛鄡芍粸貘f是否同時(shí)都飛走了,所以我們需要用and連接兩個(gè)判斷語句祠墅。

即crows[0].watching() and crows[1].watching()侮穿。

當(dāng)crows[0]和crows[1]都飛走了,那么我們有crows[0].watching()=no和crows[1].watching()=no毁嗦,等價(jià)于not crows[0].watching()=yes和not crows[1].watching()=yes亲茅。于是我們有:

not crows[0].watching() and not crows[1].watching()的返回值是yes。

(yes and yes=yes狗准,no and no=no克锣,yes and no =no, yes or no = yes)。

下面是我給出的代碼:

點(diǎn)擊運(yùn)行看效果腔长!

這時(shí)候可以三星通關(guān)袭祟!

第163關(guān)

上圖中的場(chǎng)景和前幾關(guān)類似,只是香蕉編程了3個(gè)捞附。這一關(guān)里巾乳,我們對(duì)香蕉可以用for循環(huán)。

不過我們還是要在第2,3行里寫入判斷烏鴉是否都飛走的代碼鸟召。

修改后的代碼如下:

點(diǎn)擊運(yùn)行看效果胆绊!

第164關(guān)

這一關(guān)里,我們看到由三只烏鴉欧募,這其實(shí)和前幾關(guān)沒有什么區(qū)別压状。

我們可以用

nor crows[0].watching() and nor crows[1].watching() and nor crows[2].watching()

來判斷三只烏鴉是否全都飛走了。

上圖右側(cè)的代碼區(qū)域如下:

修改后的代碼如下槽片,事實(shí)上何缓,我們并不需要判斷三個(gè)烏鴉是否全都飛走了 肢础,在這個(gè)代碼里,我們只用判斷烏鴉0和烏鴉2都飛走就可以了(大概是因?yàn)闉貘f按照順序飛走吧)碌廓,但是在現(xiàn)實(shí)的情形中传轰,我還是強(qiáng)烈建議用

return nor crows[0].watching() and nor crows[1].watching() and nor crows[2].watching()

來代替如下代碼框里的第3行。

點(diǎn)擊運(yùn)行看效果谷婆!

第165關(guān)

可是如果有很多只烏鴉怎么辦慨蛙?比如上圖中有5只烏鴉,難道我們要用

nor crows[0].watching() and nor crows[1].watching() and nor crows[2].watching() and nor crows[3].watching() and nor crows[4].watching()?

這樣的代碼嗎纪挎?

那如果有100只烏鴉怎么辦期贫?

答案是,該用for循環(huán)的時(shí)候异袄,就用for循環(huán)通砍,循環(huán)是一個(gè)好東西。

比如在如下的代碼框里烤蜕,我們就可以用for循環(huán)對(duì)烏鴉進(jìn)行遍歷封孙,對(duì)每一只烏鴉,我們都可以判斷其是否在看著小猴子讽营。

如果烏鴉c在看著小猴子虎忌,那么c.watching()=yes.

這時(shí)候,小猴子是不能走動(dòng)的橱鹏,所以如果c.watching()=yes膜蠢,那么safe函數(shù)應(yīng)該return no。

修改后的代碼如下:

點(diǎn)擊運(yùn)行看效果莉兰!

好啦挑围,到現(xiàn)在為止,return函數(shù)的全部15關(guān)都介紹完了糖荒。


下一次贪惹,我會(huì)給大家介紹成功的“鑰匙”這一部分,一共14關(guān)寂嘉,我會(huì)分2次教程介紹,每次包括7關(guān)枫绅。


順祝大家父親節(jié)快樂泉孩,過兩年我應(yīng)該也可以過上這個(gè)節(jié)日了。

(關(guān)于我構(gòu)思的機(jī)器學(xué)習(xí)的介紹會(huì)在以后的文章中給出并淋,會(huì)從分類和回歸這兩個(gè)部分講起寓搬。希望大家會(huì)喜歡。)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末县耽,一起剝皮案震驚了整個(gè)濱河市句喷,隨后出現(xiàn)的幾起案子镣典,更是在濱河造成了極大的恐慌,老刑警劉巖唾琼,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兄春,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡锡溯,警方通過查閱死者的電腦和手機(jī)赶舆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祭饭,“玉大人芜茵,你說我怎么就攤上這事〕” “怎么了九串?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長寺鸥。 經(jīng)常有香客問我猪钮,道長,這世上最難降的妖魔是什么析既? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任躬贡,我火速辦了婚禮,結(jié)果婚禮上眼坏,老公的妹妹穿的比我還像新娘拂玻。我一直安慰自己,他們只是感情好宰译,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布檐蚜。 她就那樣靜靜地躺著,像睡著了一般沿侈。 火紅的嫁衣襯著肌膚如雪闯第。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天缀拭,我揣著相機(jī)與錄音咳短,去河邊找鬼。 笑死蛛淋,一個(gè)胖子當(dāng)著我的面吹牛咙好,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褐荷,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼勾效,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起层宫,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤杨伙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后萌腿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體限匣,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年哮奇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膛腐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鼎俘,死狀恐怖哲身,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贸伐,我是刑警寧澤勘天,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站捉邢,受9級(jí)特大地震影響脯丝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伏伐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一宠进、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧藐翎,春花似錦材蹬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至末贾,卻和暖如春闸溃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拱撵。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工辉川, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拴测。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓员串,卻偏偏與公主長得像,于是被迫代替她去往敵國和親昼扛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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