Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
local start = Vector3.new(342, 72, 342) local goal = Vector3.new(309, 72, 372) local step = 3 local size = Vector3.new(3, 3, 3) local function free(p) return BlockService.getBlockAt(p) == nil end local function place(p) local part = PartService.createPart(ItemType.CLAY_WHITE, p) part:setSize(size) part:setAnchored(true) part:setCollidable(false) end local function equal(a, b) return a.X == b.X and a.Y == b.Y and a.Z == b.Z end local function getNeighbors(p) local n = {} local p1 = Vector3.new(p.X + step, p.Y, p.Z) local p2 = Vector3.new(p.X - step, p.Y, p.Z) local p3 = Vector3.new(p.X, p.Y, p.Z + step) local p4 = Vector3.new(p.X, p.Y, p.Z - step) if free(p1) then table.insert(n, p1) end if free(p2) then table.insert(n, p2) end if free(p3) then table.insert(n, p3) end if free(p4) then table.insert(n, p4) end return n end local function buildPath(s, g) if free(g) == false then error("unable reach goal") return end local queue = {s} local came = {} came[s.X .. "," .. s.Z] = s local found = false while #queue > 0 do local p = table.remove(queue, 1) if equal(p, g) then found = true break end local neighbors = getNeighbors(p) for _, np in ipairs(neighbors) do local key = np.X .. "," .. np.Z if came[key] == nil then came[key] = p table.insert(queue, np) end end end if found == false then error("unable reach goal") return end local path = {} local cur = g while true do table.insert(path, cur) if equal(cur, s) then break end local key = cur.X .. "," .. cur.Z cur = came[key] end for i = #path, 1, -1 do place(path[i]) end end buildPath(start, goal)
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)