Advertisement
logix

Heightmap

Feb 19th, 2013
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 1.37 KB | None | 0 0
  1. Global Const $MAX = 10
  2. Dim $size[2] = [20, 20]
  3. Global $pointsNumber = Random(30, 40, 1)
  4. Dim $map[$size[0]][$size[1]]
  5.  
  6. For $x = 0 To $size[0] - 1
  7.     For $y = 0 To $size[1] - 1
  8.         $map[$x][$y] = 0
  9.     Next
  10. Next
  11.  
  12. Dim $points[$pointsNumber][4]
  13. For $i = 0 To UBound($points) - 1
  14.     $points[$i][0] = Random(0, $size[0] - 1, 1)
  15.     $points[$i][1] = Random(0, $size[0] - 1, 1)
  16.     $points[$i][2] = Random(-$MAX, $MAX, 1)
  17.     $points[$i][3] = Random(-1, 0, 1)
  18.     If $points[$i][3] == 0 Then $points[$i][3] += 1
  19. Next
  20.  
  21. For $i = 0 To UBound($points) - 1
  22.     For $r = $points[$i][2] To 0 Step -1
  23.         For $kx = -$points[$i][2] + $r To $points[$i][2] - $r
  24.             For $ky = -$points[$i][2] + $r To $points[$i][2] - $r
  25.                 If ($points[$i][0] + $kx) < 0 Or ($points[$i][0] + $kx) > $size[0] - 1 Then ContinueLoop
  26.                 If ($points[$i][1] + $ky) < 0 Or ($points[$i][1] + $ky) > $size[1] - 1 Then ContinueLoop
  27.                 If ($map[$points[$i][0] + $kx][$points[$i][1] + $ky] >= $MAX) And ($points[$i][3] > 0) Then ContinueLoop
  28.                 If ($map[$points[$i][0] + $kx][$points[$i][1] + $ky] <= -$MAX) And ($points[$i][3] < 0) Then ContinueLoop
  29.                 $map[$points[$i][0] + $kx][$points[$i][1] + $ky] += $points[$i][3]
  30.             Next
  31.         Next
  32.     Next
  33. Next
  34.  
  35. $output = FileOpen("output.hmap", 2)
  36. For $y = 0 To $size[1] - 1
  37.     For $x = 0 To $size[0] - 1
  38.         FileWrite($output, $map[$x][$y] & ",")
  39.     Next
  40.     FileWrite($output, @CRLF)
  41. Next
  42. FileClose($output)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement