首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Net徽标:"ifelse“块中的”期望一个文字值“

Net徽标:"ifelse“块中的”期望一个文字值“
EN

Stack Overflow用户
提问于 2022-02-28 06:48:34
回答 1查看 57关注 0票数 1

我想看看乌龟是羊还是狼,并分别设置命令。但是Netlogo突出显示了set并告诉我

期望一个文字值

这里是编辑的代码,我添加了更多的基本信息,并为快速理解做了一些简化。

代码语言:javascript
运行
复制
breed [sheep a-sheep]
breed [wolves wolf]


sheep-own [SEnergy]
wolves-own [WEnergy]

to setup
  clear-all
  create-sheep 100
  ask sheep [set SEnergy 100]
  
  create-wolves 100
  ask wolves [set SEnergy 100]
  
  reset-ticks
end

to go
  ask turtles[
    (ifelse
      is-a-sheep? [set SEnergy SEnergy - 1]
      is-wolf? [set WEnergy WEnergy - 1])
  ]
  tick
end

我在Netlogo字典中给这个例子加上了红色

代码语言:javascript
运行
复制
(ifelse boolean1 [ commands1 ] boolean2 [ commands2 ] ... [ elsecommands ])

因此,我认为我的代码中的[set SEnergy SEnergy - 1]应该是一个命令。为什么Netlogo告诉我需要一个文本值

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-28 13:54:27

问题在于你对羊的语法?是-狼?语句。是-繁殖?接受一个参数,您正在测试的代理的标识。因此,您的代码应该是

代码语言:javascript
运行
复制
to go 
  ask turtles[
    (ifelse
      is-a-sheep? self [ set SEnergy SEnergy - 1 ]
      is-wolf? self [ set WEnergy WEnergy - 1 ])
  ]
end

然后每只海龟都在问自己它是什么。

当然,您可以单独询问每个代理集。

代码语言:javascript
运行
复制
ask sheep [set SEnergy SEnergy - 1]
ask wolves [set WEnergy WEnergy -1]

查尔斯

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

https://stackoverflow.com/questions/71291449

复制
相关文章

相似问题

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