Maze generation: Difference between revisions
Content added Content deleted
(→{{header|Julia}}: update to julia version 0.5) |
(Kotlin: some improvements) |
||
Line 3,329: | Line 3,329: | ||
class Maze_generator(val x: Int, val y: Int) { |
class Maze_generator(val x: Int, val y: Int) { |
||
fun generate(cx: Int, cy: Int) { |
fun generate(cx: Int, cy: Int) { |
||
arrayOf(*DIR.values()).shuffle().forEach { |
|||
val nx = cx + it.dx |
|||
val |
val ny = cy + it.dy |
||
val ny = cy + dir.dy |
|||
if (between(nx, x) && between(ny, y) && maze[nx][ny] == 0) { |
if (between(nx, x) && between(ny, y) && maze[nx][ny] == 0) { |
||
maze[cx][cy] = maze[cx][cy] or |
maze[cx][cy] = maze[cx][cy] or it.bit |
||
maze[nx][ny] = maze[nx][ny] or |
maze[nx][ny] = maze[nx][ny] or it.opposite!!.bit |
||
generate(nx, ny) |
generate(nx, ny) |
||
} |
} |
||
Line 3,382: | Line 3,381: | ||
val x = if (args.size >= 1) args[0].toInt() else 8 |
val x = if (args.size >= 1) args[0].toInt() else 8 |
||
val y = if (args.size == 2) args[1].toInt() else 8 |
val y = if (args.size == 2) args[1].toInt() else 8 |
||
with(Maze_generator(x, y)) { |
|||
generate(0, 0) |
|||
display() |
|||
} |
|||
}</lang> |
}</lang> |
||