2016-04-13 17 views
0

Avcıların, barınaklarda kaliteye bağlı olarak resimler yaptıkları bir arkeolojik model yapmaya çalışıyorum.Farklı cinslerdeki değişkenler

breed [shelters shelter] 
breed [hunters hunter] 
shelters-own [quality paintings] 

her barınak kalitesinin değeri (barınakların sayısı için kullanılan bir sürgü ile birlikte) kurulum ayarlanır.

create-shelters number-shelters [set quality random 100] 

boyama-ya-değil sonra her barınağın kalitesi karşı rastgele tanımlanır eylem: Artık

to make-painting 
    ask shelters [ 
    if any? hunters-on patch-here [ 
     if random 100 < quality [set paintings paintings + 1] 
    ] 
    ] 
end 

, bunu karmaşıklaştırmak istiyorum biraz daha: kalite wouldn' Barınak tarafından tanımlanmalıdır (ve böylece her avcı için aynıdır), ancak avcılar tarafından: Her bir barınak için her biri farklı bir niteliğe atıfta bulunur. Boyama ya da değil eylem hala rastgele karşı bir test olurdu, ancak her bir avcı tarafından tanımlanan bu yeni değişken ile ...

Ama düzgün bir şekilde kodlamak için bir yol bulamıyorum.

Herhangi bir öneriniz var mı?

+0

Avcılar farklı barınaklara mı gidiyorlar? Belirli bir avcının her zaman aynı kaliteyi belirli bir barınağa vermesini ister misiniz? Değerlendirmenin devam etmesini istiyorsanız, rastgele bir bileşeni varsa, onu saklamanız gerekecektir. (Ne yazık ki, tablolar yamaları anahtar olarak kullanamazsınız, ancak yamaların yerini tamsayıların bir listesi olarak girebilirsiniz.) – Alan

+0

Avcılar rastgele hareket ederler ve farklı barınakları ziyaret ederler (bir sığınağın 100 resim çekmesi durumunda durdurmak için modeli yaptım). Gerçekten de, fikir şu ki, bir örnek için 10 barınak varsa, her avcının kurulumdan kalıcı olarak 10 kalite değerinden farklı bir değişkeni olacaktır. Bu değerleri yamalardan nasıl depolar ve nasıl alırsınız? – gvanhavre

+0

O zaman neden her bir avcıya, 10'luk bir liste (ya da sahip olduğunuz birçok sığınak) listesi olan bir 'sığınak' özniteliğine sahip olmamak ve her sığınağın kalitesini listede saklamak. Muhasebeyi kolaylaştırmak için, her bir sığınağa bir barınak indeksi (ör., 0'dan 9'a kadar) atayabilir ve listeyi dizine eklemek için bunu kullanabilirsiniz. – Alan

cevap

0

Sanırım doğru anladım. Temel olarak, rastgele sayılarla dolu bir matris oluşturmak için her avcıya sahibim. Boyutu 33x33, bu yüzden dünyanın her yerine gider (bir köşede başlamak zorunda kaldı, ya da negatif koordinatları alır). bir barınak ulaşmak ne zaman

create-hunters number-hunters [ 
    set color white 
    set size 1 
    setxy random-xcor random-ycor 
    set hunter-matrix matrix:make-constant 33 33 random 10 
] 
ask n-of number-shelters patches [ 
    sprout-shelters 1 [ 
    set color one-of base-colors 
    set size 1 
    set xpatch xcor set ypatch ycor 
] 

sonra, yama konumuna karşılık gelen değeri ekstre edilmiş ve boya-veya-değil kullanılır.

Hala yaptığının tam olarak ne yaptığından emin olmadığından emin değilim, tho.