Според отговора на Bryan, няма теоретично ограничение за броя на костенурките в един пач, въпреки че вашият компютър ще има ограничение – колкото повече костенурки във вашия модел (на който и да е пластир), толкова повече памет имате моделът ще използва. Така че краткият отговор е, доколкото ми е известно, няма начин просто да кажете на Netlogo: „Създай безкрайни костенурки на този пластир“.
Ако обаче с безкрайност наистина просто искате достатъчно костенурки, които да не ви свършат за конкретни взаимодействия, вероятно бихте могли да се справите или просто като хвърлите голям брой на тази кръпка, или просто като покълнете повече, ако е необходимо (мое предпочитание ).
За първия вариант можете да имате куп костенурки на един и същи пластир:
to setup
ca
reset-ticks
ask patch 0 0 [
sprout 10000
]
ask patch 0 0 [
print count turtles-here
]
end
Като алтернатива, ако вашите костенурки на пластира се изразходват или станат недостъпни по някакъв начин, просто дайте повече кълнове, колкото е необходимо, за да поддържате броя си достатъчно висок за това, което се опитвате да направите. Ето пример, в който червени костенурки отиват до петно с "безкрайни" (1000) сини костенурки, свързват се с една от сините костенурки и ги отвеждат. Въпреки това, в края на всеки тик, "безкрайният" пач проверява дали има по-малко от 1000 turtles-here
. Ако има, той ражда достатъчно костенурки, за да върне този брой обратно до 1000. Опитайте този код в нов файл:
to setup
ca
reset-ticks
infinite-sprout
source-sprout
end
to go
ask turtles with [ color = red ] [
fd 0.5
if any? ( turtles-on patch-ahead 1 ) with [ color = blue ] [
create-link-with one-of turtles-on patch-ahead 1 [
tie
]
set color green
]
]
ask turtles with [color = green] [
move-to patch-right-and-ahead 90 1
if pycor = max-pycor [
ask link-neighbors [
die
]
die
]
]
infinite-sprout
source-sprout
tick
end
to source-sprout
ask patch max-pxcor 0 [
if not any? turtles-here and random 3 = 1 [
sprout 1 [
set shape "arrow"
set color red
set heading 270
]
]
]
end
to infinite-sprout
ask patch 0 0 [
if count turtles-here < 1000 [
sprout ( 1000 - count turtles-here) [
set shape "circle"
set color blue
]
]
]
end
След това настройте интерфейса си по следния начин: ![въведете описание на изображението тук](https://i.stack.imgur .com/PIGc0.jpg)
Ако стартирате този модел за известно време, ще видите, че в края на всеки тик, count turtles
на пач 0 0 се връща обратно до 1000, което на практика ви дава безкраен източник на костенурки, които можете да „използвате“. Това постига ли това, от което се нуждаете?
person
Luke C
schedule
27.07.2017