同志們筏勒,雄安新區(qū)都成立了,你們說(shuō)粟誓,中國(guó)的變化快不快奏寨?!
在這樣一個(gè)蘊(yùn)含無(wú)數(shù)機(jī)會(huì)的變化面前鹰服,我們常常誤以為自己可以抓住其中一些機(jī)會(huì)病瞳,然后卻忘了努力揽咕。
孩子們也是如此。
不要讓孩子們錯(cuò)失機(jī)會(huì),那就趕緊跟上步伐烈评,學(xué)習(xí)編程吧傲宜!
在未來(lái)幾次教程里,我們學(xué)習(xí)如何利用“直到”(until)來(lái)完成一些不知道要循環(huán)多少次的循環(huán)指令蛹头。
知識(shí)點(diǎn)
until是“直到”的意思。舉個(gè)例子戏溺,“I will not wake up until 7 a.m.” 就是我直到早上7點(diǎn)才會(huì)起床渣蜗。
在CodeMonkey里,我們可以用“until near match”來(lái)表示“直到接近火柴”旷祸。
完整的用法是:
until near match
? ? ? ? step 1
表示“直到接近火柴之前耕拷,我們要(不停地)走1步⊥邢恚”
也就是說(shuō)骚烧,在沒(méi)有達(dá)到火柴之前,我們不能停下闰围,每次都要走1步赃绊。當(dāng)然,這里的火柴(match)也可以是別的對(duì)象羡榴。
下面跟著我一起闖關(guān)吧碧查!今天我們一起來(lái)玩玩第86-90關(guān),看看怎么用until玩得更有意思炕矮。
第86關(guān)
我們看看界面么夫。
在左側(cè)的畫(huà)面里,小老鼠需要撿起火柴肤视,放在火柴堆里档痪。
右側(cè)是代碼框,代碼如下:
我先解釋一下代碼:
第1邢滑,2行:直到靠近火柴之前腐螟,走1步;
第3行:撿起火柴困后;
第4,5行:直到靠近火柴堆之前乐纸,走1步;
很明顯摇予,小老鼠走到火柴堆之后汽绢,需要把火柴放下,于是代碼可以像這樣補(bǔ)充:
第6行:放下火柴侧戴。
點(diǎn)擊看看效果吧宁昭!
三星通關(guān)跌宛!
第87關(guān)
上圖中猴博士的意思是,near這個(gè)代碼可以返回一個(gè)結(jié)果积仗,如果小老鼠靠近目標(biāo)疆拘,返回yes,否則返回no寂曹。這個(gè)返回的結(jié)果需要用say來(lái)表示出來(lái)哎迄。
在左側(cè)的畫(huà)面里,依然是和上一關(guān)一樣的畫(huà)面隆圆,小老鼠依然需要撿起火柴放在火柴堆上漱挚。
在右側(cè)的代碼框里,我們看到如下代碼:
在上述的第3行代碼里匾灶,near match會(huì)一直返回no棱烂,直到小老鼠接近火柴之后租漂。
第4,5行明顯有問(wèn)題阶女,撿起來(lái)直接就放下的,那是深蹲哩治。所以我們要把第5行代碼放在第8行秃踩。
更改后的代碼如下:
點(diǎn)擊運(yùn)行,看看效果吧业筏!
三星通關(guān)憔杨!
第88關(guān)
until指令是在不知道要循環(huán)多少次的情況下使用的,只有當(dāng)until后面的條件得到滿足的情況下蒜胖,循環(huán)才會(huì)終止消别。
在左側(cè)的畫(huà)面里,小老鼠台谢,火柴寻狂,火柴堆不再在同一條水平線上,所以小老鼠再撿起火柴之后需要轉(zhuǎn)向火柴堆朋沮,然后再走到火柴堆那放下火柴蛇券。
代碼如下:
我們需要在第3行寫(xiě)上grab()指令,讓小老鼠撿起火柴樊拓。
在第4行寫(xiě)上turnTo pile指令纠亚,讓小老鼠轉(zhuǎn)向火柴堆。
在第7行寫(xiě)入drop()指令筋夏,讓小老鼠放下火柴蒂胞。
我給出的代碼如下:
點(diǎn)擊運(yùn)行,看看效果吧条篷!
三星通關(guān)骗随!
第89關(guān)
在這一關(guān)里岳瞭,內(nèi)容基本和前三關(guān)一致。
故事內(nèi)容依然是:小老鼠需要把火柴放在火柴堆上蚊锹。
我們看看代碼:
看完代碼瞳筏,我們就發(fā)現(xiàn)問(wèn)題了:第4行的指令是面向火柴堆,但是小老鼠在面向火柴堆之后牡昆,居然只走了4步姚炕。
難道小老鼠會(huì)大跨步向前進(jìn)?難道火柴堆會(huì)自動(dòng)漂移丢烘?
所以我們可以這樣改:
點(diǎn)擊運(yùn)行柱宦,看效果:
可惜,最后只得到兩顆星播瞳!
提示是:用6行代碼解決問(wèn)題掸刊。
好吧,我們可以不用until赢乓,直接把step 4改成step distanceTo pile即可忧侧。
代碼如下:
點(diǎn)擊運(yùn)行,看效果牌芋!
三星通關(guān)蚓炬!
第90關(guān)
猴博士是不是夸錯(cuò)了,我覺(jué)得應(yīng)該夸我們聰明的孩子們啊~
原來(lái)躺屁,這一關(guān)肯夏,螞蟻會(huì)拖著火柴走,讓小老鼠和火柴之間的距離時(shí)刻變化犀暑。
在左側(cè)的界面里驯击,我們看到老鼠沒(méi)有直接面向火柴。右側(cè)的代碼框里的代碼如下:
我們需要把turn left放在最前面耐亏,把step 1 放在until 下面徊都,原因是,在接近火柴之前不停左轉(zhuǎn)是沒(méi)有用的苹熏。
之后的代碼和前幾關(guān)一樣碟贾,在小老鼠從螞蟻手里搶到火柴之后,就要讓小老鼠面向火柴堆轨域,然后走向火柴堆袱耽,放下火柴。這些動(dòng)作可以用如下的第5-7行代碼實(shí)現(xiàn)干发。
點(diǎn)擊運(yùn)行朱巨,看看效果吧!
三星通關(guān)枉长!
后記:
今天你學(xué)會(huì)使用until了嗎冀续?
下一次琼讽,我們會(huì)在新的關(guān)卡中繼續(xù)學(xué)習(xí)和使用until!