Разделите мир на равные части - PullRequest
1 голос
/ 06 марта 2020

Отредактировано

Удален дублированный вопрос. См. ссылка для удаления вопроса.


2) Я хочу разделить мир на 9 или 16 частей ( с таким же размером ). Я хочу, чтобы мир состоял из нескольких квадратов (3х3 или 4х4). Я нашел что-то, что находится на правильном пути здесь StackOverflow , и с помощью кода @Bryan Head я могу сгенерировать что-то вроде this . Но я не хочу, чтобы размер был случайным, я хочу, чтобы все области имели одинаковый размер.

; Dividing the world randomly into 14 parts.
ca
let region-num 0
ask n-of 14 patches [
  set pcolor item region-num base-colors
  set region-num region-num + 1
  ]
while [ any? patches with [ pcolor = black ] ] [
  ask patches with [ pcolor != black ] [
     ask neighbors with [ pcolor = black ] [ set pcolor [ pcolor ] of myself ]
  ]
]

Спасибо!

1 Ответ

3 голосов
/ 09 марта 2020

для пункта 2: вы можете использовать

ask patches with [pxcor < 3 and pycor < 3] 

, чтобы получить все патчи в углу. Вы можете расширить это, чтобы разделить карту на части.

изменить, чтобы расширить мой комментарий: попробуйте код ниже.

to test
  resize-world 0 8 0 8
  let x 3
  let y 3
  let col 5
  while [y <= 9][
    while [x <= 9][
      ask patches with [pxcor < x and pxcor >= x - 3 and pycor < y and pycor >= y - 3][
        set pcolor col
      ]
      set x x + 3
      set col col + 10
    ]
    set x 3
    set y y + 3
  ]
end
...