В моей программе СО2 породы черепахи имеют начальную концентрацию 10, и глюкоза породы черепахи будет начинаться с 10 и повышаться на 10 за каждый тик (как указано в процедуре настройки кормления).Процедура «идти» включает в себя бактерии породы черепахи, которые потребляют СО2 и глюкозу каждый клещ.Проблема в том, что в моем текущем коде обе породы черепах, CO2 и глюкозы увеличивают каждый тик.Мой текущий вывод Excel выглядит так:
Я надеюсь, что мой вывод Excel может выглядеть следующим образом:
Любые комментарии или предложения по этому вопросу?
Breed [glucose a-glucose];; Glucose
Breed [CO2s CO2]
Breed [bacteria bacterium]
glucose-own [glucose_mass]
bacteria-own [bacteria_mass]
CO2s-own [CO2s_mass]
Globals
[
time
Initial_concentration_glucose
Initial_concentration_CO2s
total_glucose
total_CO2s
]
to setup
clear-all
set time 0
set Initial_concentration_glucose 0
set Initial_concentration_CO2s 0
set total_glucose 0
set total_CO2s 0
;;; BACTERIA;;;
set-default-shape bacteria "default"
create-bacteria (20)
[ set color cyan
set bacteria_mass 20 / 20
]
;;; CO2s;;;
set-default-shape CO2s "circle"
create-CO2s (10)
[set color orange
set CO2s_mass (10 / 10)
setxy random-xcor random-ycor
]
setup-feed
output-1
reset-ticks
end
to setup-feed
set-default-shape glucose "circle";; Glucose shape
Create-glucose (10)
[
set glucose_mass 10 / 10
setxy random-xcor random-ycor
]
end
to output-1
if (file-exists? "TestINOUT-AD.csv") [carefully [file-delete "TestINOUT-AD.csv"] [print error-message]]
file-open "TestINOUT-AD.csv"
file-type "tick,"
file-type "Initial_concentration_glucose,"
file-type "Initial_concentration_CO2s,"
file-type "Bacteria,"
file-type "CO2s,"
file-print "glucose,"
file-close
end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ПРОЦЕДУРЫ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
to go
if not any? turtles [stop]
Calculate_concentrations
ask bacteria
[ eat
]
set time time + 1
count_glucose
count_CO2s
output-2
tick
if (time = 72) [stop]
end
;;;;;;;;;;;;;;;;; ПОМОЩЬ ПРОЦЕДУРАМ
to Calculate_concentrations
set Initial_concentration_glucose (Initial_concentration_glucose + sum [glucose_mass] of glucose + 0.0000001)
set Initial_concentration_CO2s (Initial_concentration_CO2s + sum [CO2s_mass] of CO2s + 0.0000001)
end
to eat
let prey one-of glucose-here
if prey != nobody
[ask prey [die]]
let prey2 one-of CO2s-here
if prey2 != nobody
[ask prey2 [die]]
end
to output-2
file-open "TestINOUT-AD.csv"
file-type ticks file-type ","
file-type Initial_concentration_glucose file-type ","
file-type Initial_concentration_CO2s file-type ","
file-type total_CO2s file-type ","
file-print total_glucose
file-close
end
to count_glucose
set total_glucose (total_glucose + sum [glucose_mass] of glucose)
end
to count_CO2s
set total_CO2s (total_CO2s + sum [CO2s_mass] of CO2s )
end