У меня есть список, составленный из двух черепах (для простоты houses
и landlords
). Благодаря некоторым предложениям, которые были предоставлены мне здесь, я выбрал дом с максимальной ценой из списка, но, к сожалению, хозяин не является владельцем этого дома, а только черепаха выбрала один тик раньше. Я понял, что что-то не так с определением этой черепахи. После предложений я написал:
let selected_house max-one-of turtle-set my-list [price]
let selected_landlord [my-landlord] of selected_house
print (word "Landlord" [selected_landlord] of selected_house)
let new_list (list selected_house selected_landlord)
print (word "Landlord " selected_landlord "of house: " selected_house " by price: " [price] of selected_house)
, но если, скажем, у меня есть:
Список:
"Landlord 2 is the owner of house 4 by price 400000"
"Landlord 5 is the owner of house 1 by price 100000"
"Landlord 4 is the owner of house 3 by price 300000"
, а затем я использую selected_house/landlord
чтобы выбрать владельца дома с наивысшей ценой, я должен получить (house 4, landlord 2)
; однако я получаю (house 4, landlord 5)
, то есть домовладелец выбрал один тик раньше.
Я определил домовладельца и дом следующим образом (у меня есть похожие упражнения, но на разные темы):
if breed = landlords [
hatch-houses n_house [
set price precision (random-float 1) 3
set this-house self
set this-landlord myself
ask myself [
set my-list fput (list this-house this-landlord) my-list
]
]
, где this-house
и this-landlord
- глобальные, а my-list
- landlords' own
.
Не могли бы вы помочь мне разобраться и решить проблему с этой частью кода?
Я подумал, что, поскольку я создаю список с первым элементом = дом и вторым элементом = арендодатель, можно добавить некоторые условия, чтобы сделать выбор максимально простым (например, после выбора первый элемент, т. е. дом с наивысшей ценой, устанавливает в качестве домовладельца второй элемент каждого элемента в списке).
Большое спасибо