首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让两个智能体打架

如何让两个智能体打架
EN

Stack Overflow用户
提问于 2017-10-29 00:29:16
回答 1查看 130关注 0票数 2

我需要让两队特工在他们看到对方的时候打架。每支球队都有50%的获胜机会。如果座席的能量低于初始配置,则会损失50%的能量。我该怎么做?我的代码似乎是错误的。谢谢。

代码语言:javascript
复制
to move-teamA
ask teamA
[
ifelse any? teamB-on patch-right-and-ahead -90 1 or any? teamB-on patch-
ahead 1  
[
  fd 1
  if energy < advance_energy [set energy (energy / 2)]                            
  let x random 1
            if x = 0 [fd 1]
            if x = 1 [die]]
end  
EN

回答 1

Stack Overflow用户

发布于 2017-10-29 03:46:57

看看这种方法--我认为它是你想要做的事情的一个更简单的版本。我忽略了你的energy组件,因为我不确定你是如何设置它的,但是你可以随心所欲地把它放进去。

代码语言:javascript
复制
breed [ teamA one-teamA ]
breed [ teamB one-teamb ]

to setup
  ca
  create-teamA 10 [
    setxy random-xcor random-ycor
    set color red
  ]
  create-teamB 10 [
    setxy random-xcor random-ycor
    set color blue
  ]
  reset-ticks
end

to go
  ask turtles [
    let enemy one-of turtles in-cone 1 90 with [ breed != [breed] of myself ]
    ifelse enemy != nobody [
      ifelse random 2 = 1 [ ; if visible enemy exists, flip coin
        ask enemy [ die ]   ; if 1, enemy dies, I move forward
        fd 1
      ] [ 
        die 
      ]                     ; if 0, I die
    ] [ 
      fd 1 
    ]                       ; if no enemy, move forward
  ]
  tick
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46991964

复制
相关文章

相似问题

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