天天看点

CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85

CodeMonkey过关学习笔记系列:71-75关

•“函数”农场 (FUNCTION FARM) 71 ~ 85

CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战
"函数"农场

step distanceTo match
grab()
step pile.distanceTo rat
drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

turnTo match
step distanceTo match

grab()

turnTo pile
step distanceTo pile
drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

# 顺便说一下,这是一行注释哦  这里开始引入了注释的概念
# 它是由 '#' 开始的

for m in matches
    turnTo m
    step distanceTo m
    grab()
    turnTo pile
    step distanceTo pile
    drop()
    # 每次只能捡一根火柴

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

# 有没有发现代码有重复的地方,下面会引入函数,就可以减少代码的重复了

turnTo bridge
step distanceTo bridge
turnTo match
step distanceTo match

grab()

turnTo bridge
step distanceTo bridge
turnTo pile
step distanceTo pile

drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

# 这里开始引入函数的概念了,这一关卡是不是和上一个很类似
goto = (t) ->
    turnTo t
    step distanceTo t


goto bridge
goto match
grab()
goto bridge
goto pile
drop()

           

CodeMonkey过关学习笔记系列:76-85关

•“函数”农场 (FUNCTION FARM) 71 ~ 85

CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

goto = (a) ->
    turnTo a
    step distanceTo a

for match in matches
    goto match
    grab()
    goto pile
    drop()

//================================================

goto = (a) ->
    turnTo a
    step distanceTo a
goto matches[]
grab()
goto pile
drop()
goto matches[]
grab()
goto pile
drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

goto = (a) ->
    turnTo a
    step distanceTo a

for m in matches
    goto m
    grab()
    goto pile
    drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

goto = (c) ->
    turnTo c
    step distanceTo c

goto bridge
goto match
grab()
goto bridge

goto(pile)
drop()


           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

goto = (p) ->
    #请在这里编写函数的实现
    turnTo p
    step distanceTo p

for m in matches
    goto bridge
    goto m
    grab()
    goto bridge
    goto pile
    drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

collect = (e) ->
    turnTo e
    step distanceTo e
    grab()
    turnTo pile
    step distanceTo pile
    drop()
for m in matches
    collect m

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

这里不只有一个函数, 而是有 两个 函数 !
goto = (t) ->
    turnTo t
    step distanceTo t

collect = (e) ->
    goto e
    grab()
    goto pile
    drop()

for m in matches
    collect m


           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

#请在这里定义 goto 函数
goto = (x)->
    turnTo x
    step distanceTo x

goto match
grab()
goto pile
drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

接下来我们试试将小岛 islands 和木筏 rafts 作为函数的参数来使用

goto = (t) ->
    turnTo t
    step distanceTo t
gotoAll = (stuff) ->
    for s in stuff
        goto s

gotoAll islands
grab()
gotoAll rafts
drop()

           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

goto = (t) ->
    turnTo t
    step distanceTo t
getAndReturn = (r) ->
    goto r
    grab()
    goto turtle
for m in matches
    getAndReturn m
    goto pile
    drop()
    goto turtle
    turtle.step 

//我们把去火柴的的过程也封装为一个函数
goto = (p) ->
    turnTo p
    step distanceTo p

grabAndReturn = (r) ->
    goto r
    grab()
    goto turtle
dropAndReturn=()->
    goto pile
    drop()
    goto turtle

for m in matches
    grabAndReturn m
    dropAndReturn()
    turtle.step 
           
CodeMonkey过关学习笔记系列:71-85关 函数•“函数”农场 (FUNCTION FARM) 71 ~ 85•“函数”农场 (FUNCTION FARM) 71 ~ 85
第  关挑战

我们也可以用数字 numbers 作为函数的参数
goto = (t) ->
    turnTo t
    step distanceTo t
collect = (m) ->
    goto m
    grab()
    goto pile
    drop()
#这个函数应该让所有
#turtles 前进 d (d是数字)
allTurtlesStep = (d) ->
    #请完成这里!
    for c in turtles
        c.step d

allTurtlesStep 
collect matches[]
allTurtlesStep -
collect matches[]

           

继续阅读