海龟交配仿真模拟代码
turtles-own [ energy gender age married birthday]
to setup
clear-all
setup-patches
create-turtles 100
[ setxy random-xcor random-ycor
;set color green
;set size 3
;set shape "person"
set gender random 2
ifelse gender = 1
[
set color blue
]
[
set color pink
]
]
reset-ticks
end
to reset
clear-all
end
to go
update-age
move-turtles
eat-grass
regrow-grass
reproduce
check-death
tick
end
to update-age
ask turtles[
set age (ticks - birthday) / 365
]
end
to move-turtles
ask turtles [
right random 360
forward 1
set energy energy - 1
]
end
to setup-patches
ask patches [
set pcolor green
]
end
to eat-grass
ask turtles [
if pcolor = green [
set pcolor black
;set energy energy + 10
Set energy energy + energy-from-food
]
]
end
to regrow-grass
ask patches[
if random 100 < 3
[
set pcolor green
]
]
end
to reproduce
let date ticks mod 365
if date >= 60 and date <= 100
[
ask turtles with [
gender = 1 and age >= 1 and age <= 5 and married = 0 and energy >= 100
]
[
let females turtles-here with [
gender = 0 and age >= 1 and age <= 5 and married = 0 and energy >= 100
]
if any? females[
ask one-of females[
set married 1
set energy energy - 100
hatch random 31
[
set birthday ticks
set energy 10
set gender random 2
set color ifelse-value (gender = 1) [blue][pink]
set married 0
]
]
set married 1
]
]
]
end
to check-death
ask turtles [
if energy <= 0 [ die ]
if age > 8 [ die ]
]
end