【发布时间】:2022-01-10 12:35:09
【问题描述】:
这是我操作的 2 人游戏的代码
o play-the-game
if (any-friends-nearby?) [gain-energy]
if (any-opponents-nearby?) [fight-opponent]
end
to-report any-friends-nearby?
report (any? (turtles-on neighbors4) with [breed = [breed] of myself])
end
to-report any-opponents-nearby?
report (any? (turtles-on neighbors4) with [breed != [breed] of myself])
end
to gain-energy
set similar-nearby count ( turtles-on neighbors4 )
with
[color = [color] of myself]
set total-nearby count (turtles-on neighbors)
;
;
if (similar-nearby >= total-nearby - similar-nearby)
[set energy energy + 5]
end
to fight-opponent
let my-breed [breed] of green-players
let my-color [color] of green-players
let opponent-breed [breed] of red-players
;
;;
ask my-breed
[check-random-winner]
end
to check-random-winner
let pick random-float 2
let winner nobody
ask turtles
[if winner = nobody
[ ifelse size > pick
[set winner self ]
[set pick pick - size] ] ]
end
to change-opponent
ask red-players
[ set breed green-players
set color green ]
end
对不起,如果它有点长,但是当我设置然后按 go "ASK 预期输入是代理或代理集但得到列表 [green-players...]"
我该如何解决这个问题? 此外,我对 Netlogo 和 StackOverflow 还很陌生,如果我没有正确提出我的问题,我深表歉意。
【问题讨论】:
-
我发布了一个答案,但知道在代码问题中您应该提供minimal reproducible example:阅读您的问题的人应该能够复制您的代码,将其粘贴到他们的软件上,而无需进行更改或添加,并且能够重现您描述的问题。在这种情况下,我必须添加
turtles-own变量、setup过程和go过程才能使其工作。在任何情况下,这并不意味着您应该发布整个代码:您需要的目标是缩小代码版本,使其重现问题所需的最小尺寸。