Черепахи умирают в соответствии со слайдером

#slider #netlogo

#слайдер #netlogo

Вопрос:

Я хочу, чтобы определенное количество черепах (управляемых ползунком) умирало каждый год. Пока я понял это, это, вероятно, очень просто, но, похоже, я не могу заставить это работать. Большое спасибо!

 to hunting

let huntedturtles (count turtles = hunted-turtles) ; Hunted-turtles is the slider. 

      if ticks mod 365 = 0 

  [ask huntedturtles [die]]

  set hunted hunted   hunted-monkeys 

end 
  

Ответ №1:

Вы получаете сообщение об ошибке типа ERROR: ASK expected this input to be an agent or agentset, but got a TRUE/FALSE instead , правильно?

count turtles = hunted-turtles проверяет, равно ли общее количество черепах hunted-turtles . Я не думаю, что это то, чего вы хотите. Вместо этого вы, вероятно, хотите что-то вроде

 let huntedturtles n-of hunted-turtles turtles
  

Это приведет к случайному выбору hunted-turtles черепах.

Примечание: huntedturtles и hunted-turtles легко спутать имена переменных. Подумайте о создании слайдера num-hunted-turtles или чего-то подобного, а также набора самих черепах, на которых охотятся hunted-turtles .

Комментарии:

1. Спасибо! Это все еще не работает. Черепахи умирают при первом тике, а затем я получаю это сообщение: Requested 11 random agents from a set of only 7 agents. error while turtle 48 running N-OF. хотя черепах на выбор все еще достаточно. Есть ли способ, чтобы «huntedturtles» было точным числом в качестве ползунка? Надеюсь, вы сможете помочь с этим. Теперь код выглядит так. to hunting let huntedturtles n-of hunting-rate turtles if ticks mod 365 = 0 [ output-print "hunted" ;set hunted hunted hunting-rate ask huntedturtles [die]] end

2. Я так понимаю, ваш ползунок установлен на 11? Вы получаете эту ошибку, потому что после того, как он убивает 11 черепах в первом тике, во втором тике остается недостаточно черепах, чтобы выбрать 11 из них! Как вы это исправите, зависит от того, как вы хотите, чтобы ваша модель вела себя. Попробуйте несколько вещей. Если вы все еще застряли, откройте новый вопрос здесь.