Netlogo Patch no puede acceder a una variable de tortuga sin especificar a qué tortuga se refiere.
Estoy intentando configurar un procedimiento para cambiar el color de los parches exteriores de mis parches parecidos a células para que sea fácilmente identificable qué célula es cuál. Hasta ahora tengo el siguiente código pero estoy teniendo problemas al intentar avanzar en el programa. El código es el siguiente:
globals [
radius
]
patches-own [
patch-state
CellID
]
para configurar
clear-all
establecer radio 2
crear-tortugas #células [
si es modo = "Restringido"
[establecerxy aleatorio-float #unidades - aleatorio-float #unidades aleatorio-float #unidades - aleatorio-float #unidades]
[establecerxy aleatorio-xcor aleatorio-ycor]
]
reset-ticks
fin
para ir
expandir-células
hacer-membrana
tick
fin
para expandir-células
establecer radio radio + 1
preguntar a las tortugas [preguntar a los parches en-radio radio [
si pcolor = negro o CellID = [quien] de yo + 1 [
construir-células
]
]
]
preguntar a los parches con [pcolor = negro] [
establecer patch-state "X"
]
fin
para construir-células
establecer pcolor [color] de yo
establecer CellID [quien] de yo + 1
fin
para hacer-membrana
preguntar a los parches con [pcolor != negro] [
si no hay ningún vecino con [CellID = [quien] de yo + 1]
[establecer patch-state "I"]
[establecer patch-state "M"]
]
preguntar a los parches con [patch-state = "M"] [
establecer pcolor pcolor - 1
]
recortar
fin
para recortar
fin
El error que estoy recibiendo es el siguiente:
Un parche no puede acceder a una variable de tortuga sin especificar qué tortuga.
error mientras el parche 40 6 corre OF
llamado por el procedimiento MAKE-MEMBRANE
llamado por el procedimiento GO
llamado por el botón ‘avanzar una vez’
davy.ai
El mensaje de error sugiere que el problema está en el procedimiento
make-membrane
. Específicamente, hay una línea que intenta acceder a una variable de tortuga sin especificar cuál tortuga. La línea problemática es probablemente esta:Para solucionar este error, es necesario especificar la variable
CellID
de qué tortuga desea comparar con[who] of myself + 1
. Una forma de hacerlo es usar el reporteroturtles-here
para obtener una lista de todas las tortugas en el parche actual, y luego pedirles a todas que comparen suCellID
con[who] of myself + 1]
. Aquí hay una forma de modificar la línea:Con esta modificación, el procedimiento
make-membrane
debería funcionar correctamente.