生成具有随机大小和位置的河流

Generate rivers with random size and location

我正在做一个较小的项目,有一个问题我找不到任何解决方案。

我想随机生成河流。我的计划是随机生成一些大小和位置不同的河流。有谁知道怎么随机生成河流吗?

我已经尝试了几种方法。我确实设法生成了 this,但我希望它更像河流(直线)而不是 'clustered'。

我用下面的代码得到了上面的图片。

; Generating random rivers.
ca
ask patches with [pycor = (random 16) or pxcor = (random 16)]
[
  set pcolor brown
  ask patches in-radius random 3 [set pcolor brown]
]

感谢您抽出宝贵时间!

_______________________________________________________________________________

编辑:

我有一些进步,看起来像this。这是我最接近我想要的。

to setup   
 ca 
ask n-of 2 patches [
      spread-right
    ]
    ask n-of 2 patches[
      spread-left
    ]
    ask n-of 2 patches[
      spread-down
    ]
    ask n-of 2 patches[
      spread-up
    ]   
end 

to spread-right
   if pxcor < max-pxcor [
    ask n-of 1 neighbors with [ pxcor = [pxcor] of myself + 1] [
      set pcolor brown
      spread-right
    ]
  ]
end
to spread-left   
  if pxcor > min-pxcor [
    ask n-of 1 neighbors with [ pxcor = [pxcor] of myself - 1] [
      set pcolor brown
      spread-left
    ]
  ]
end

to spread-down 
  if pycor > min-pycor [
    ask n-of 1 neighbors with [pycor = [pycor] of myself - 1][
      set pcolor brown
      spread-down
    ]
  ]
end 

to spread-up 
  if pycor > max-pycor [
    ask n-of 1 neighbors with [pycor = [pycor] of myself + 1][
      set pcolor brown
      spread-up
    ]
  ]
end

您可以简单地使用(半)随机行走的乌龟四处走动并为其行走的斑块着色。然后用你的展开码在某些地方加粗

感谢@Jumboman 的建议,我用这段代码解决了它。根据世界的大小和功能的首选大小,可以更改设置的数字。

to setup
  ca 
  ;Generating physical features.    
  ask n-of 5 patches[ sprout 1[
    set pcolor brown]
  ]

  let i 0
  while [ i < (max-pycor )][
    ask turtles [
      fd 1
      set pcolor black
      ifelse (random 20 <= 1)
      [
        rt one-of [-90 0 90]      
        forward 1
      ]
            [
        fd 1
        set pcolor brown
        fd 1
        set pcolor brown
      ]
      set pcolor brown
      set i i + 1]
  ]


  ask n-of max-pxcor patches with [pcolor = brown][
    ask patches in-radius 1 with [pcolor = black][
      set pcolor brown]
  ]

  ask turtles [die]
end