首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >海龟“睡”半天

海龟“睡”半天
EN

Stack Overflow用户
提问于 2014-06-16 11:52:09
回答 1查看 135关注 0票数 2

我有一群海龟,猴子在我的模型中,他们应该移动半天,另一半睡觉。当它们移动时,它们吃水果并从中获得能量,当它们移动时也会失去能量,如果它们有-10的能量,它们会挨饿(从100股能量开始),我假设一只蜱是一天。现在发生的事情是,在我加入移动状态和睡眠状态之后,他们只需要一两次就饿死了,我不知道为什么。我认为问题在于倒计时或滴答.以下代码的一部分。非常感谢!

代码语言:javascript
复制
to move 
  ask monkeys [
  move-monkeys
   set count-down count-down - 1   
   if count-down <= 0
   [set state task sleep
    set count-down 0.5 + 0.5 
   ] 
  ]

 end

to sleep 
   ask monkeys [
  set count-down count-down - 1
  set label count-down
  if count-down <= 0 
  [set state task move 
   set label ""
     set count-down 0.5 + 0.5 
  ] 
  ]
 end 
to move-monkeys

  ask monkeys [

     set best-patch patches with-max [calories] in-radius 3

    right random 360 fd 1

     set energy energy - 10 ;; monkeys lose energy when they move. 

    if is-patch? best-patch 
     [ ifelse patch-here = best-patch   
[eat-fruit] 

 [evaluate]]


  if energy < 10
      [output-print "starve"
      set nostarve nostarve + 1
      die] 

    ]


          end 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-17 22:15:24

还张贴在Net徽标用户组上 -代码在那里。

在你的模型中,听起来你好像是在让猴子在滴答声中来回走动。因此,在每一个周期中,一只猴子移动大约12个小时。不过,你不会看到所有这些,除非你要求猴子更新显示器--这可能会在你发现错误的时候有所帮助。不过,如果你这么做的话,只能用几只猴子。

一些我能看到的东西

1)为什么你需要睡眠和运动周期?他们在睡觉时恢复能量了吗?如果没有,只需要让他们在24小时中的12小时内搬家,不要做其他任何事情。当他们停下来时,他们会将计数重置为12,或者每隔几个小时移动一次。有点像

代码语言:javascript
复制
ask monkeys
[
ifelse my-time >=0  
[move
set my-time my-time - 1]
[set my-time 12]                   -sets my-time 12 and stops whats it's doing
]

2)你让他们寻找最好的补丁,然后你让他们随机移动。你想让他们搬到最好的地方吗?如果是这样的话,使用移动-一个-最好的补丁。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24243086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档