как создать цели для черепах и попросить их выбрать одну? - PullRequest
0 голосов
/ 27 сентября 2019

enter code here привет!Я создаю среду, в которой я прошу людей перейти на это к цели.Моя проблема в том, что я не могу установить цели для конкретной координации: [3 20 и 20 -3].также я хочу, чтобы люди меняли свое направление, когда их терпение равно нулю, и в то же время не сталкивалось с другими людьми в противоположном направлении.и я хочу остановить свой код, когда отметки 500. вот мой весь код:

    breed [ people person ]
    breed [trees tree]
    breed [stores store]
    breed [lights light]
   people-own [sex age speed PersonalDistance target max-speed min-speed 
  patience]
  patches-own [meaning]

to setup
  ca
  resize-world -20 20 -20 20
  draw-sidewalk
  createTrees
  CreateStores
  place-people
  set-targets
end


to go
  make-new-person 10 2 -20 0 blue "person"
  make-new-person 10 1 -20 0 yellow "person"
  make-new-person 10 1 20 180 white "person"
  make-new-person 10 2 20 180 pink "person" 
  make-new-person 10 -20 3 90 orange "person"
  move-people
  tick
end

to make-new-person [freq x y head col shp]
  if (random-float 100 < freq) and not any? turtles-on patch x y [
    create-people 1 [
      setxy x y
      set heading head
      set color col
      set shape shp
  ]
end


to place-people
  while [count people < num-of-people] [
    ask one-of patches with [meaning = "sidewalk"] [
      sprout-people 1 
end


to move-people
  ask people [ move-to-target ]
  ask people with [ patience <= 0] [choose-new-direction set speed speed + acceleration  if [pxcor] of patch-here  = item 0 target and [pycor] of patch-here = item 1 target [die]]
  reset-ticks
end

to move-to-target
  ask people [
    set target one-of targets
    facexy item 0 target item 1 target + random-normal 0 10
  ;;face min-one-of patches with [meaning = "destination"] [ distance myself ]
  let slow-people other people in-cone 1 180 
  let slow-person min-one-of slow-people [distance myself]
  if slow-person != nobody [
    set speed [speed] of slow-person
    slow-down-person
]
]
end 

to slow-down-person
  set speed (speed - deceleration)
  if speed < 0 [set speed deceleration]
  set patience patience - 1 
end 

to choose-new-direction
  ask people [
    if not any? turtles-on patch-left-and-ahead 30 1 [
      rt 90 ]
   if not any? turtles-on patch-right-and-ahead 30 1 [
      rt 90 ]
  ]

end 

;;to create-destinations
 ; ask patches with [pycor = 3 and pxcor = 20 ][
   ; sprout 5 [
   ; set shape "flag"
   ; set meaning "destination"
   ; set size 2 
   ;   set color white]


to set-targets

  set targets [ [20 3] [20  -3]]
  set k .2
end
...