If statement 使用If-Else语句打印NetLogo中的赢或输

If statement 使用If-Else语句打印NetLogo中的赢或输,if-statement,simulation,netlogo,If Statement,Simulation,Netlogo,这就是我正在进行的模拟的进展。此模拟有一个玩家列表,每个玩家都有其指定的分数或分数。我有一个叫games的补丁。有三十场比赛。一旦玩家击中游戏(或者如果他们将在模拟中相遇),就会有一个标签显示“击中”,这已经完成。三十场比赛中的每一场都有自己的分数。这些点是随机生成的 所以我的问题是,如果球员赢了或没有赢,我将如何在分配球员时表现出来?我的条件是,如果玩家的分数大于或等于游戏的分数,那么它应该显示“你赢了游戏!”或者“你输了!”这发生在玩家和游戏相遇时 我将在我的球员身上放置另一个变量,以指示他

这就是我正在进行的模拟的进展。此模拟有一个玩家列表,每个玩家都有其指定的分数或分数。我有一个叫games的补丁。有三十场比赛。一旦玩家击中游戏(或者如果他们将在模拟中相遇),就会有一个标签显示“击中”,这已经完成。三十场比赛中的每一场都有自己的分数。这些点是随机生成的

所以我的问题是,如果球员赢了或没有赢,我将如何在分配球员时表现出来?我的条件是,如果玩家的分数大于或等于游戏的分数,那么它应该显示“你赢了游戏!”或者“你输了!”这发生在玩家和游戏相遇时

我将在我的球员身上放置另一个变量,以指示他们是赢还是输。但我的问题是,我一直在尝试编写if-else/if-on-the-move过程,以满足我想要的条件,但我遇到了困难。我需要帮助或一些关于如何做这件事的线索。谢谢

breed [players player]
breed [games game]
globals [namelist pointslist]
players-own[name points] ;;going to add another variable here
games-own[points istaken]

to setup 
  ca
  ask patches [set pcolor black]
  set namelist["Player 1" "Player 2" "Player 3" "Player 4" "Player 5" "Player 6" "Player 7" "Player 8" "Player 9" "Player 10"]
  set pointslist["1" "1" "1" "5" "3" "3" "4" "2" "2" "5"]

  ;;define counter
  let counter 0 ;;0-9

  repeat 10 [
    create-players 1[
  set name item counter namelist
  set points item counter pointslist
  setxy random-xcor random-ycor
  set shape "person"
  pen-down
]
  set counter counter + 1
  ]

  create-games 30[
    set shape "circle"
    setxy random-xcor random-ycor
    set points random 5 + 1 ;
  ]

  reset-ticks
end 

to go
  tick
  ask players[move]
end

;;this is the part where I added my if-else code but i cannot get it
to move
  ask players [
right(random 181) - 90
fd 1
let hw one-of games-here 
if hw != nobody[

  ask hw [set label "hit"]
    ]
  ]

end

你的描述并不完全清楚,但我认为这回应了你的问题。(有关所需的
ifelse
语句,请参见结尾。)


非常感谢您提供此解决方案。我想问,为什么球员不应该问球员?你评论中的那个…我还想问一下这行代码“ifelse(points>[points]of _-hw”,在
go
你有
问玩家[move]
。这很好。但是你有
move
ask players
开始。这意味着每个玩家将要求所有玩家执行
move
动作。对于10名玩家,移动动作每勾执行100次,而不是10次。你给两名玩家一个
属性d个游戏,但玩家正在运行移动动作。当玩家运行移动动作时,
指其点。(您可以将其替换为self的
[点]
)hth
globals [namelist pointslist]
breed [players player]
players-own[name points] ;;going to add another variable here
breed [games game]
games-own[points istaken]

to setup 
  ca
  ask patches [set pcolor black]
  set namelist["Player 1" "Player 2" "Player 3" "Player 4" "Player 5" "Player 6" "Player 7" "Player 8" "Player 9" "Player 10"]
  set pointslist[1 1 1 5 3 3 4 2 2 5]  ;use numbers, not strings!

  ;;define counter
  let _counter 0 ;;0-9

  create-players 10 [
    set name item _counter namelist
    set points item _counter pointslist
    setxy random-xcor random-ycor
    set shape "person"
    pen-down
    set _counter (_counter + 1)
  ]

  create-games 30 [
    set shape "circle"
    setxy random-xcor random-ycor
    set points random 5 + 1 ;
  ]
  reset-ticks
end 

to go
  ask players[move]
  tick
end

;;this is the part where I added my if-else code but i cannot get it
to move
  ;ask players [  ;ai don't ask player to ask players!
  right(random 181) - 90
  fd 1
  let _hw one-of games-here 
  if _hw != nobody [
    ask _hw [set label "hit"]
    ifelse (points > [points] of _hw) [ ;comparison of two *numbers*
      show "won the game"
    ] [
      show "lost the game"
    ]
  ]
end