3 renk (sarı, yeşil ve kırmızı) içeren yamalarım var. Yeşil olanların bir 'rank' değeri var. Ben sarı ya da yeşil yamalar ('aday hücreler') kırmızıya verilecek belirli bir sayı ('n-hücreler') sormak istiyorum.NetLogo'da 'n-of' primite 'öncelikleri' nasıl eklenir?
let candidate-cells (patches with [ pcolor = yellow or pcolor = green ])
ask n-of n-cells candidate-cells [ set pcolor red ]
Ama kırmızıya döndü edilecek yamalar için öncelikleri eklemek istiyorum: Ben rastgele böyle ilkel 'n-of' kullanarak da yapabilirsiniz farkındayım. İlk olarak, sarı lekelerin kırmızıya dönmesini istiyorum (rastgele), ancak sarılan tüm yamalardan sonra hala kırmızıya dönüşecek yamalar döndürülürse, en yüksek 'rütbe' değerine sahip yeşil lekeler istiyorum. 'n-hücreler' sayısı. Ben bu kod parçası olan son satırın yukarı kadar çalışması gerektiğini düşünüyorum :
let candidate-yellow-cells (pcolor = yellow)
let candidate-green-cells (pcolor = green)
ask n-of n-cells candidate-yellow-cells [ set pcolor red ]
if n-cells > candidate-yellow-cells [
let left-cells (n-cells - candidate-yellow-cells)
ask n-of left-cells candidate-green-cells [ set pcolor red ]
Ama yine de, ben yine yeşil hücreler için, ben bir şey tarafından Yenisini nasıl acaba 'n-of' kullandığımı en yüksek 'rank' değerine sahip yeşil yamalar olarak 'sol hücreleri' seçerdi. Şimdiden teşekkür ederim.
Teşekkür Alan, bir kez daha günü kurtardı. Yine de, herkes neden "min" 'e ihtiyacımız olduğunu açıklayabilir:' let _n min (liste (n-cells - _ny) _ng) '? –
@ThalesWest Orada olduğundan daha fazla yamalar isteyemezsiniz, bu yüzden çok fazla talep ederseniz, bu sadece her şeyi sorar. Bunun bir alternatifi, bir hata için çok fazla soru sormayı düşünmektir, ancak burada programın çalışmaya devam etmesini istediğinizi düşünmüştüm. – Alan