少兒編程游戲CodeMonkey通關攻略:第81-85關

近日,各大高校陸續發布2017年自主招生簡章。

(不要這么嚴肅好不好?好吧。。。)

其中清華大學招生領導小組給出的招生申請條件第一項就是:

“1.研究創作類:在科技發明、研究實踐、文學創作等方面具有突出表現的學生。”

北京大學(引用2016年的內容)給出的申請條件第一項也是:

“1、有發明創造或參加科技類、人文社科類競賽全國決賽或國際比賽獲得優異成績者;”

其他高校也是遙相呼應啊,比如中國第一所近代大學天津大學(北洋大學堂的前身)在今年3月27日給出的自主招生簡章里就明確規定報名條件是:

“(一)高中階段參加全國中學生學科奧林匹克競賽(數學、物理、化學、信息學)、青少年科技創新大賽(青少年創新項目)等競賽,獲得省級賽區一等獎(含)以上;

(二)高中階段獲得全國中小學生創新作文大賽高中組全國決賽特等獎;

(三)高中階段以第一發明人身份獲得國家授權發明專利;

(四)在學科特長或創新潛質方面有突出才能或極大潛力(要求自附詳細材料說明)。”

由此可以看出清華北大最先重視的就是有研究和創新能力的高中生,而天津大學作為傳統工科強校,提出的四個報名條件里有三條是和創新,研究相關的能力,比如科技創新,發明,創新潛質。

這些能力并不虛,而是可以通過申請人的簡歷一目了然地看出來。

作為一個在理工科學習和研究將近10年的博士生,我看到一份簡歷,就能大概知道對方的水平在什么層次,是門外漢,新手,剛入門,還是老司機,額,錯了,是老師傅。

因為簡歷可以反映申請人到底有沒有做項目的經歷,申請人的思想、喜好、以及目前所擁有的創新能力。因為創新能力可以后天培養,所以簡歷里還基本反映了申請人對研究的喜愛和努力程度。

那些在高校里做了幾十年研究的老教授們呢?他們比我見過更多的學生,帶過更多的研究生,基本上一眼就可以把這個孩子的潛力看得八九不離十。所以沒有實力的申請人必然會被淘汰,而那些越早接觸科研的學生,就會越有優勢。

我在這里也提醒大家,如果想讓自己的孩子在未來有一個好的出路,就算不申請名校的自主招生項目,也要盡早培養孩子的好奇心,和對科學研究的興趣。因為孩子未來能解決多大的問題,直接決定孩子未來人生的高度。

關于這些我們未來再仔細探討。

千里之行,始于足下。

我們要讓孩子從培養興趣和打好編程基礎開始,學習CodeMonkey這個編程游戲里相關的編程知識。

今天我們繼續學習“函數”王國的最后5關:第81-85關。

第81關

本關一開始,猴博士告訴咱,不要擔心,這一關我們只需要改一點就可以通關啦。

來看看這一關發生了什么事情:

我們看到,小老鼠和要撿的火柴之間擱著一座木橋,它需要經過木橋,撿起火柴,然后往回走,再次經過木橋,從而把火柴放在火柴堆上。

這是右側代碼框里已有的代碼:

我先解釋下這些代碼:

第1-3行:定義goto函數,這個函數在我們之前的教程里已經有大量用處,這里不再解釋。

第4,5行:注釋行,告訴我們下面的crossBridgeTo這個函數需要被修復。

第6-8行:定義crossBridgeTo函數,函數的作用對象被定義為p,這個函數的作用是讓小老鼠先走到木橋,再走到函數指向的對象p。所以第7行應該改為“goto bridge”。

第9行:注釋行,說明第10-13行的代碼沒有問題。。

第10行:把crossBridgeTo函數作用于match,即火柴。

第11行:讓小老鼠撿起火柴。

第12行:把crossBridgeTo函數作用于pile,即火柴堆。

第13行:讓小老鼠放下火柴。

修改后的代碼可以是這樣:

還等什么?點擊運行,看看效果吧!

通關!

第82關

這是第82關!

在左側的畫面里,小老鼠和火柴堆在小河下方,而三根火柴在小河上方,小河上有一座木橋。

這一關與上一關的差別是,這一關里小老鼠需要去撿三根火柴,而上一關小老鼠的工作量只有一根火柴。

有了之前學過的for循環,別說三根,就算給我1億根,我也能讓小老鼠撿完。

我們先看看右側的代碼框。

第1-3行:定義goto函數。

第4行:注釋行,說明第5-7行的代碼沒有問題。

第5-7行:定義crossBridgeTo函數,即先走到木橋,再走到函數的對象v。

第8-11行:注釋行,告訴我們通過crossBridgeTo函數,要讓小老鼠帶著對象z走到火柴堆。

第12行:開始定義collectThruBridge函數,對象用“z”代替。

第13行:注釋行,需要修改,從而定義collectThruBridge函數。

第14行:注釋行。

第15,16行:對于小河對面的每一根火柴,都用collectThruBridge函數作用于它從而把所有火柴都撿回到火柴堆里。

下面是我給出的一個解決方案:

大家重點看第14-17行,因為collectThruBridge這個函數的目的是讓小老鼠經過木橋,走到某根火柴,撿起它,回到木橋,走到火柴堆,放下撿來的火柴。

所以我的解決方案是:

第14行:經過木橋走到某根火柴那里。

第15行:撿起火柴。

第16行:經過木橋走到火柴堆那里。

第17行:放下火柴。

點擊運行,看看效果吧(只放了一部分效果)。

通關!

第83關

第83關,猴博士提醒我們,像islands,rafts之類的物體也可以作為函數的參數來使用。

其實這里的表述不是特別嚴謹,所謂函數的參數,應該改為函數的對象更為合適一些。

我們來看看這一關的畫風是怎樣的。

在左邊的畫面框里,我們看到老鼠需要先走過6個小島,即islands,走到火柴那里,然后撿起火柴,再經過6個木筏,即rafts,最后把火柴放在火柴堆上。

在右邊的代碼框里,我們看到已經給出的函數是這樣的:

第1-3行:定義goto函數。

第4行:注釋行,告訴我們在第5-8行里有問題,我們需要解決這個問題,才能讓小老鼠完成我們的目的。

第5-8行:定義gotoAll函數,這是因為goto函數只能一次做一個操作,比如goto島a,那么只能走到島a,走到島a之后就不再行動了。但是這里一共有6個島,除第一個島之外,小老鼠需要走過5個島。為了簡單起見,就用gotoAll來執行這樣的操作:讓小老鼠走過所有的對象。那么我們看到,第7,8行有點重復第2,3行的內容,其實用一句“goto s”就可以代替了。

第9行:注釋行,說明下面幾行需要被修復。

第10行:讓小老鼠經過所有的島。

第11行:空行,這里小老鼠需要執行撿起火柴的操作,所以需要寫上一句grab()。

第12行:讓小老鼠經過所有的木筏。

第13行:空行,這里小老鼠需要執行放下火柴的操作,所以需要寫上一句drop()。

我給出的代碼如下:

我們可以點擊試試,看看效果!

通關!

第84關

這一關我們需要借用烏龜來讓小老鼠在小河上移動起來。

這難度比前幾關要難一點,因為前幾關的木橋是不能移動的。

在左側的畫面框里,小老鼠在烏龜的背上,需要上去撿起火柴,然后返回到烏龜上,此時的烏龜可以被視為前幾關里的木橋,小老鼠接著把撿到的火柴放在火柴堆上。然后烏龜此時移動起來,讓小老鼠可以去撿其它幾根火柴,此時烏龜的功能比前幾關的木橋更強大,相應地,我們也需要寫相關代碼來操控烏龜。

以下是系統給出的代碼:

第1-3行:定義goto函數。

第4-6行:注釋行,告訴我們需要做什么。

第7-10行:定義getAndReturn函數,對象為r。顧名思義,這里的r應該是火柴,我們需要走向r,撿起r,然后返回到出發的位置。

第11,12行:注釋行,我們可以改動來延續第7-10行要完成的任務。

第13行:注釋行。

第14-19行:for循環,讓小老鼠把火柴m撿起并返回,走到火柴堆,放下火柴,走到烏龜背上,烏龜向左走8步。

我給出的解決方案如下:

在第11,12行里,我讓小老鼠撿起火柴,并且往回走d步。

這下子,getAndReturn函數就完成了讓小老鼠“面向火柴”(turnTo r),“定義d為小老鼠與火柴之間的距離”(d=distanceTo r),“走d步”(step d),“撿起火柴”(grab()),“往回走d步”(step -d)的操作。

點擊運行,看看效果吧!因為持續時間過長,我只放了一部分效果,以后運行時間越來越長的時候,我會把過程分成幾個動圖來顯示。

過關!

第85關

猴博士告訴我們,我們可以把函數的參數設為數字。

整體界面如下:

在左側的畫面框里,我們看到小老鼠在最上方,三個烏龜分別趴在三條河里,這里我們需要讓三個烏龜動起來,從而讓小老鼠過河。

來看看已有的代碼:

第1-3行:定義goto函數,對象為t。
第4-8行:定義collect函數,對象為m,即讓小老鼠收集m:走向m,撿起m,走向火柴堆,放下m。這里的m應該是火柴。

第9,10行:注釋行,讓下面的第11-13行代碼(allTurtlesStep函數)執行“讓所有烏龜前進d步”的指令。

第11-13行:完成allTurtlesStep函數。

第14行:注釋行。

第15-18行:“所有烏龜前進10步”(第15行),“小老鼠收集火柴0”(第16行),
“所有烏龜后退10步”(第17行),“小老鼠收集火柴1”(第18行)。

我給出的代碼是這樣的:

第11-13行要完成allTurtlesStep函數,所以我用一個for循環,讓每一只烏龜都前進d步。

點擊運行,看看效果!

這是小老鼠收集火柴0的過程:

這是小老鼠收集火柴1的過程:

通關!


是不是很開心?

在這5關里,我們闖過了“函數”王國里的最后5關。這一共15關(第71-85關)的“函數”王國,讓我們學會了如何定義函數來完成某些需要重復執行,先后執行的操作。這些函數的功能還是很強大的。

在接下來的15關里,我們將要學習如何利用“直到”(until)來完成一些不知道要循環多少次的循環指令。

希望大家喜歡!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,034評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,165評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,559評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,781評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,327評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,084評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,278評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,495評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,010評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,241評論 2 375

推薦閱讀更多精彩內容