1. 程式人生 > >CodeMonkey過關學習筆記系列:151-165關 函式的返回

CodeMonkey過關學習筆記系列:151-165關 函式的返回

•“返回”小鎮( RETURN TO SENDER )151~165

image14.jpeg

image168.jpeg

151 關挑戰

使用 返回 return 指令,我們可以把某個 函式 function 的運算結果傳送回來.

example = () ->
    return  not banana.rotten()

if example() #example() 函式返回 no
    goto banana
else
    turn 360

image169.jpeg

152 關挑戰

通常函式 function 的 返回 return 結果取決於我們如何定義這個函式.

yummy = (x) ->
    return
not x.rotten() for b in bananas if yummy b goto b

image170.jpeg

153 關挑戰

healthy = () ->
    return health() == 100

goto healthZone

until healthy()
    wait()
goto banana

image171.jpeg

154 關挑戰

healthy = () ->
    return health() == 100

injured = () ->
    return health() < 70

//#在這裡使用 healthy() 函式和 injured() 函式
for b in bananas goto b if injured() goto healthZone until healthy() wait()

image172.jpeg

155 關挑戰

healthy = () ->
    return health() > 99


//#這裡應該是正常的,如果你已經修復了 healthy() 函式
goto healthZone
until healthy()
    wait()
goto bush
goto banana

image173.jpeg

156 關挑戰

safeFrom = (a) ->
    return
a.sleeping() or a.playing() //#或者 or ? //#另一種呼叫有引數的函式的用法是使用小括號 '()' until safeFrom(tiger) wait() goto banana

image174.jpeg

157 關挑戰

safeFrom = (a) ->
    return a.sleeping() or a.playing() //#修復這裡吧

until safeFrom(tiger) and safeFrom(bear)
    wait()

goto banana

image175.jpeg

158 關挑戰

請寫出一個函式 function , 以便讓它 返回 return 肯定 yes 或者是 否定 no 的結果.

negative = () ->
    return no //#改成 nopositive = () ->
    return yes //#這段程式碼是正常的

if negative()
    goto bananas[0]
if positive()
    goto bananas[1]

image176.jpeg

159 關挑戰

在一個函式 function 裡面,所有寫在 返回 return 指令後面的內容都不會被執行.

foo = () ->
    return yes

if foo()
    goto banana
else
    say "nope"

CodeMonkey過關學習筆記系列:160-165關

•“返回”小鎮( RETURN TO SENDER )151~165

image14.jpeg

image177.jpeg

160 關挑戰
until not crow.watching()
    say "Boo!"
goto banana

image178.jpeg

161 關挑戰

//請使用 說話 say 這個指令,直到安全為止.
safe = () ->
    return not crow.watching()

//#使用 say 函式來嚇走烏鴉 crow 吧

until safe()
    say "x"
goto banana

image179.jpeg

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

image180.jpeg

163 關挑戰


safe = () ->
    #只有烏鴉監控的時候才返回 yes
    return not( crows[1].watching() or crows[0].watching())

until safe()
    say "Go away!"

for b in bananas

    goto b

image181.jpeg

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

image182.jpeg

165 關挑戰

safe = () ->
    for c in crows
        if c.watching()
            return no //#這樣是安全的嗎?
    //#如果到達這裡意味著沒有烏鴉在監控啦
    return yes

until safe()
    say "Go away!"

goto banana