CodeMonkey過關學習筆記系列:151-165關 函式的返回
阿新 • • 發佈:2019-01-22
•“返回”小鎮( RETURN TO SENDER )151~165
第 151 關挑戰
使用 返回 return 指令,我們可以把某個 函式 function 的運算結果傳送回來.
example = () ->
return not banana.rotten()
if example() #example() 函式返回 no
goto banana
else
turn 360
第 152 關挑戰
通常函式 function 的 返回 return 結果取決於我們如何定義這個函式.
yummy = (x) ->
return not x.rotten()
for b in bananas
if yummy b
goto b
第 153 關挑戰
healthy = () ->
return health() == 100
goto healthZone
until healthy()
wait()
goto banana
第 154 關挑戰
healthy = () ->
return health() == 100
injured = () ->
return health() < 70
//#在這裡使用 healthy() 函式和 injured() 函式
for b in bananas
goto b
if injured()
goto healthZone
until healthy()
wait()
第 155 關挑戰
healthy = () ->
return health() > 99
//#這裡應該是正常的,如果你已經修復了 healthy() 函式
goto healthZone
until healthy()
wait()
goto bush
goto banana
第 156 關挑戰
safeFrom = (a) ->
return a.sleeping() or a.playing() //#或者 or ?
//#另一種呼叫有引數的函式的用法是使用小括號 '()'
until safeFrom(tiger)
wait()
goto banana
第 157 關挑戰
safeFrom = (a) ->
return a.sleeping() or a.playing() //#修復這裡吧
until safeFrom(tiger) and safeFrom(bear)
wait()
goto banana
第 158 關挑戰
請寫出一個函式 function , 以便讓它 返回 return 肯定 yes 或者是 否定 no 的結果.
negative = () ->
return no //#改成 no 吧
positive = () ->
return yes //#這段程式碼是正常的
if negative()
goto bananas[0]
if positive()
goto bananas[1]
第 159 關挑戰
在一個函式 function 裡面,所有寫在 返回 return 指令後面的內容都不會被執行.
foo = () ->
return yes
if foo()
goto banana
else
say "nope"
CodeMonkey過關學習筆記系列:160-165關
•“返回”小鎮( RETURN TO SENDER )151~165
第 160 關挑戰
until not crow.watching()
say "Boo!"
goto banana
第 161 關挑戰
//請使用 說話 say 這個指令,直到安全為止.
safe = () ->
return not crow.watching()
//#使用 say 函式來嚇走烏鴉 crow 吧
until safe()
say "x"
goto banana
第 162 關挑戰
safe = () ->
if crows[0].watching()
return no
if crows[1].watching()
return no
#如果到達這裡意味著兩隻烏鴉都沒有在監控啦
return yes
#在這裡使用 safe() 函式
goto banana
或者
safe = () ->
if crows[0].watching() or crows[1].watching() //0號或者1號烏鴉在監視,就是不安全的情況
return no
return yes
第 163 關挑戰
safe = () ->
#只有烏鴉監控的時候才返回 yes
return not( crows[1].watching() or crows[0].watching())
until safe()
say "Go away!"
for b in bananas
goto b
第 164 關挑戰
safe = () ->
return (not crows[0].watching() and not crows[1].watching() and not crows[2].watching())
或者
return not (crows[0].watching() or crows[1].watching() or crows[2].watching())
until safe()
say "Go away!"
goto banana
第 165 關挑戰
safe = () ->
for c in crows
if c.watching()
return no //#這樣是安全的嗎?
//#如果到達這裡意味著沒有烏鴉在監控啦
return yes
until safe()
say "Go away!"
goto banana