CodeMonkey过关学习笔记系列:71-85关 函数

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

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

image7.jpeg
image88.jpeg

71 关挑战
"函数"农场

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

image89.jpeg

72 关挑战

turnTo match
step distanceTo match

grab()

turnTo pile
step distanceTo pile
drop()

image90.jpeg

73 关挑战

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

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

image91.jpeg

74 关挑战

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

turnTo bridge
step distanceTo bridge
turnTo match
step distanceTo match

grab()

turnTo bridge
step distanceTo bridge
turnTo pile
step distanceTo pile

drop()

image92.jpeg

75 关挑战

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


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

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

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

image7.jpeg
image93.jpeg

76 关挑战

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[0]
grab()
goto pile
drop()
goto matches[1]
grab()
goto pile
drop()

image94.jpeg

77 关挑战

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

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

image95.jpeg

78 关挑战

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

goto bridge
goto match
grab()
goto bridge

goto(pile)
drop()


image96.jpeg

79 关挑战

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

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

image97.jpeg

80 关挑战

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

image98.jpeg

81 关挑战

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

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

for m in matches
    collect m


image99.jpeg

82 关挑战

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

goto match
grab()
goto pile
drop()

image100.jpeg

83 关挑战

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

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

gotoAll islands
grab()
gotoAll rafts
drop()

image101.jpeg

84 关挑战

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 8

//我们把去火柴的的过程也封装为一个函数
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 8

image102.jpeg

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 10
collect matches[0]
allTurtlesStep -10
collect matches[1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值