Проращивание черепах между расширенным выпуском

Этот вопрос является продолжением предыдущего вопроса. Netlogo Проращивание черепах через равные промежутки времени

При запуске кода установите размер черепахи примерно на 0,4. Я столкнулся со следующей проблемой: (см. рисунок ниже) Simulation run

Проблема

На рисунке 2 вы можете заметить черную дыру, где нет черепах. Это нежелательно, и это то, что я намерен исправить. Таким образом, росток должен начинаться с края участка, а не с центра.

Спасибо.

КОД: (Ответ Николя Пайетта на Вопрос)

to fill-wall [ d ]
  set d precision d 1 ; make sure d is a multiple of 0.1
  let n precision (d / 0.1) 0 ; interval at which to hatch
  ask one-of possible-next-patches [ 
    sprout 1 [
      hatch 1
      let i 0
      let next-patch my-next-patch
      while [ next-patch != nobody ] [
        face next-patch
        while [ patch-ahead 0.55 != nobody and [ pcolor ] of patch-ahead 0.55 = black ] [
          fd 0.1
          setxy precision xcor 1 precision ycor 1 ; avoid floating point imprecisions
          set i i + 1
          if i mod n = 0 [ hatch 1 ]
        ]
        set next-patch my-next-patch
      ]
      die
    ]
  ]  
end

to-report possible-next-patches
  let empty-black-patches patches with [ pcolor = black and not any? turtles-here ]
  report empty-black-patches with [
    count neighbors4 with [ member? self empty-black-patches ] = 1
  ]
end

to-report my-next-patch
  report one-of possible-next-patches with [ member? self [ neighbors4 ] of myself ]
end

Вот как вы могли бы его использовать:

to setup
  ca  
  ; draw the background:
  ask patches with [ abs pxcor != max-pxcor and abs pycor != max-pycor ] [ set pcolor grey ]
  ask patches with [ pycor = max-pycor and abs pxcor <= 1 ] [ set pcolor white ]
  set-default-shape turtles "circle 2"
  fill-wall 0.3
end

Ограничения:

  • d должно быть кратно 0,1
  • необходимо отключить перенос мира

person Abhishek Bhatia    schedule 25.09.2014    source источник
comment
Невозможно посоветовать вам, если вы не предоставите код.   -  person Seth Tisue    schedule 25.09.2014
comment
Спасибо, что указали на @SethTisue. У меня сейчас есть код. Пожалуйста, проверьте.   -  person Abhishek Bhatia    schedule 25.09.2014
comment
Вы понимаете, почему возникает проблема? У вас есть идея, как исправить это самостоятельно? Вы понимаете код Николя? Вам нужно спросить что-то более конкретное, чем «вот куча кода, поправьте его для меня». Расскажите нам о своей идее, как это исправить, расскажите, что именно вы пробовали, и расскажите, где именно вы застряли. Это вопрос. Stack Overflow — это не сайт, на котором другие люди бесплатно пишут ваш код. Это сайт, на котором, если вы постараетесь написать хороший вопрос, кто-нибудь на него ответит.   -  person Seth Tisue    schedule 27.09.2014