Cave generation

I came across this brief overview1 of generating ASCII representations of dungeons, and decided to take a stab at a Scala version of the same.

The basic idea is (1) generate some random walls, and then (2) apply some rules to transform this into a reasonable-looking closed cave over a few iterations.

I ended up tweaking a couple of parameters (wall-wall distance, number of iterations) a bit differently, here’s how it looks:

➜ sbt
[info] Loading project definition from /home/agam/code/caves/caves/project
[info] Loading settings for project caves from build.sbt ...
[info] Set current project to hello-world (in build file:/home/agam/code/caves/caves/)
[info] sbt server started at local:///home/agam/.sbt/1.0/server/4e9ac60073a7ab62e5f4/sock
sbt:hello-world> run

Iteration zero: random walls

######################################################################
#...####..#.#..#.#......#...#.#..#..#...#.####....##...#.##.##....##.#
#..#####.###.#..##..#....#.##.#...#.###..#.#...##.....###..#..##.....#
#....#......##..#.#....###..##....#....#....#.....##...##.#..###....##
#...#....#...####.#.###.###.#.#.#...#..##..##......#..####.#..#...####
#.......#.#..#...#....###.#.###.#...####.#..#.####..###.#..#####.#...#
##.#.....#.....###.#.#....#.....###.#..##..##.........#.#....#.#..#..#
##...#####..#####.#...#...#..#.#.....##.....#.#.....#......###.#....##
#..###..#..#...##.#..##..#.#..#..###...#.#...#...##..#...#.#...#...#.#
#...#.#####...#....######..###..#..#..####.###.#..#..##....#.##.#...##
###..###........#.#.#...###...###.#.#.##.....#.##.#.###.#.#.##..#..#.#
#....#.##.....#.#.##..##.#..#.##...#.#.##...#.###...##..##........####
#...#.#.......###..##.#####...#.##...#####.##.##.##.#..#...#.##..#####
#.#..##..###..##.......###..###...##..#.#...#...###..#.####..##.##.#.#
#.#.###.#..###.#........#.#..#.##.##..##.#.#.#..#.###.##.##.#####....#
##..#.....####.#.#.##...#.#...###.##..#...#...#.###..#..#...#.#.....##
####...###.#..#.##.#.#.........##.###.#.#..#.#...#...#.#..#..##..##.##
##.#...#..#...#.##......###.###.......#.#.#......#.#..#.#.##..#...##.#
###....#..#......#.......##....###..##..##.#..#..#.#....##..#..#.#..##
##..##.....####.####.###.##...#..#..#..##.......##.##.....#.###..##..#
#.......##....#......#........#...####.##..#.##.#.#...#...#.##.#..#..#
##...........#....###...#.##...#........#..##..#.........##.......####
#....##.##..##..#...#...##......#...####....##..#..#....#..####....###
#....#.#.....#...#..#..#.#####....#.........#.#..#..#.#.###......#...#
#.#.#..#..##.#..##.#..#...###...#.#.##.###...#..###.#.##.#...##.##.#.#
#....................................................................#
#..##.##.#.#.##..#..###.#.#.....###.#.#.#....#...#...#.....#....#.##.#
#..##..#.#.....#..####..#.#...##.##..#.###.##..#......#....#.#.#...###
#..#####.#..###..##.##..#....#..........#.#.#...#....#..##.#....####.#
#.#.##....#.#.##.#.#.#.##.....#....###..##.#..#.......#.##...##..#####
#..#........###.####.....##....##..#.#.##..#.##..##...##.#.##.#......#
#.....###.#.##.#..#####...##..............###.######......##......##.#
#..###...#..#####..##....##.#.##...##.....#.#.#..##...##.........#.#.#
#...#..##.#..##.##.........#..#.....#.#..#.#.###......##...#.#...#.###
#.....#.##..###.#...#.....#...##.#...#.#.#..#...#...###..#.###..##.###
#...#..#.#..##.##...#....#....##.##..#.#..#........###.#..##...##....#
#...##...#.#.#...#...#...##...#.#.###.....##.#.##.#.#.#..#.#.#...#...#
#.#........##.#...##..##...##.....###..###.....#.........#.#.#.###...#
#.#.##.....#..#..#....#.###.###..##.#.#....##..#.#..##..#.#.#####....#
##...#..##..#.###.##.##.###..#.#......#.#.####.#.####.##...###...#...#
#.###.###.#....#.##..#.#.#.##.#.#...#...##..#...#.###...#..##..#.##.##
#.#..##.....#...#....#.#.#.#.###.####.##........###.#...##.##..##.#.##
#..##..#..#..#........#....####.#..##.#........#...#.#..#....#.#...#.#
#.#.##.#..#.#####.#..##.##..##..#......#..#.#..##....##.##.###.#...###
#...#...#....##.#..#.#.##.####.#.#..#.#.....#.#.#...#...#.##.####....#
#...##.######.##..###.#.###..#.......###.#.###..#.#.#.##.##....#####.#
#....##.###......#.....#..#...##.#.#....#......#.#.##...#...##.#####.#
#.#.#..#..#..###...######.#.####..#.#..#...####.##....#....#..#...##.#
###.##.##.##......####..#..##.#..#.....###.##.#...#....#####....#.#..#
######################################################################

Iterations 1-4: Coalesce larger islands

######################################################################
######################..############################..################
#####################...#######..###################..###########...##
##..##......##########.#######........########....##..##########...###
#....#.......##################..#....########.......###########....##
#..##..#.##....###############...#....########.####..###########.##..#
##......##..#.##########.####......##.###..###.#..##.......#####.##..#
##......##..###########...###.##............###......#..#..#####..#.##
#..##..####...##########...####...#.#....#..###...#...#.#...####....##
##....####.##....########..#####.#.#.....##.####..#..###....####.#..##
##....###..##....#########...####............####...#####..........###
#..#####...#......########....###...#..##....####...#####.##......####
#...###...#....#...#######.#.####..#...##..#..####....######.....#####
##..###.......###......###..########...##..##..####...################
##..##..#..######..#....##...#######...........#####..###########...##
#####...###############...##..######..#..##.##..###....#########....##
####....####.##########.......######..##....##...##..#.########...####
####..##.##.....###.........#..####........#..#...#..#..#######...####
###..##.........###...#..####..###...#...###..#.....##...######....###
##..##..##.###...##..##......#......#...#........#..####..#####.#...##
##.##...#.#...##......##...#.##..##....##.....##.##...##..####..##..##
##.#.....#.....#...##.........####..#..##.##......##.......###..#..###
#.....#..##.##..##..#...#.................###..#....#......###..#...##
#..##.##..####..##..####...#####.#####..#....##.##...#.##.#.....##..##
#..#...#..........#....##..##.#.....#...###..#...###..#####..##...#..#
#........##..##..#.........#.........#....#..##..##.#.....#..##..#...#
#.........#...#.....##...###..#..##..##.......#...#..##.............##
#.....#...#......#####...##..##.###........#...####..##.#..##..##..###
#....#####.......#####......##.......#..#..#......#....###..#...######
#.###............####..##...#..##...##..#.....#....#...###...#...#####
#..#...#..#......#####.#...#...####..#.##....######.#.......####..####
#........#........####.#..##......#...##...#.#######.#...###..##..####
##.###....#........##.##...#..#..#.#......#.#######...#.#.........####
#..##....#...#..##....##..##..#.....#...#....#####...###....##....####
#..#...##...#####..#..##...#..##.....##.#...........###....##..##..###
#...#.#.#...#####..##....#....##......#...###....#.####..####.......##
#....##.##..####...##......#...#...#......##..##.#......#####....##..#
##.#....#....##........#...##....###..#.#................##########..#
###........#.###..#.....######....#..###...##........##...########...#
####.....##...#####..#..######..#..........##.##...####....#######...#
####..#..#.#...###..#...#########.......###..#....####..#..#######..##
######.#....#.....##......########.##..###..##.....##...#...#####...##
#######..#...#....#..#.....######..##..##...#..##...........####..####
######...#...###...........######..#.....#.....##.#..#.....#####...###
##.###..###..###..##...#..######..#..##..##..#.......##...#######...##
#...########..#..###.........###..#...#..#...#.....####.##..##########
#....######..............#...###..##.#..........#...........##########
##....#####...##...###......####.................#...............#####
############..###########..#######.....########..##.#..#####....######
######################################################################

######################################################################
######################.###############################################
###############################..################################..###
##..###.....###################......##########...##############...###
#...##.......##################.##....#########.....############....##
#..##...##.#..################..####..##########..#..#############...#
##..##..##...#################......#..##..#####.##.......########...#
##..#...##...##################..#..##......###..##..#.....######...##
##..#..####...#################..##.###.##..###...#...#.##..#####...##
##....######....##################...#...##.####..#..####....###....##
##...####.#####..##########..####..##.....#..####...#####..#..#....###
#...####...#..#...#########..####..##..#..#..####....#######......####
#...###..##....#...########..#######..###..#..####....#######....#####
##..###.......###......###...#######...#...#...####...################
######.....#########....##...#######..#..##....####.#.###########..###
#####....#############...###..######..#..#...#..###...##########...###
####....################......######..###...##...##....########...####
####..#..##....#####...#.......####..##....#..##....#...#######..#####
###..##.........###.....#####...##..##....##..##....##...######....###
######.....###...#...##..#####......#...#..#..###....##...#####..#..##
#####..##..#..#...#...#......##...###..##........##...###.####..##..##
####...........#...#...###......##....##...##.....##...#...###......##
####..#..#..#...#...#..##.#.....###...#....##..#....#......##..##...##
####..##...###.#.#.#...##..###...###.#..##.....##......####......##.##
###.###.#.....#..##.#..#...##.##....#...##..#....##.#...###..##..##..#
##..##..##.#..##.....#.#..##...#.....##..#.###...###.#.......##..#...#
#..#......###.##....##...###.....##..##.#.....#####..##...##........##
#..#..#....##.#...####.......#...##.....#..##..####..####..#...#...###
#.....####..###..#####.###..##......#...#.###.......#.####..#.....####
#..##.###..#.##..########...#..##...##...#.............##....#....####
#..#......##..##.#######...#...###....##..#...#####.#.....#...##..####
#.....##..##..##..######..#.#.#...##..##..##.#######.#...###..##..####
#....##...#........#####...#.....###......#.#######...#.##........####
#.##.....##..........###..##..#.##..##..##...#####...###.....###..####
#..#.....#...###.#....#.###..###.#...#.##...........###....##..##..###
#..#.##..#..#####.##.#...#....##..#...#....##.#..##..#...####.......##
#....##..#..####...####........#..##.....#.#..######..#..#####...#...#
##..##.##...####.......#...##..#..##..#.##............#..#########..##
###....#.....#####..#...######....##.##.....#..##....##...########...#
####..#..##...####..##..########.....##........##..####.#..#######...#
#######..###...###...##..########.......###.#......###..##.#######..##
#######.....#.....#..##...#######..##..###..##..#......###..#####..###
#######.....##...##..####..######..##...#...#..#####..#.#...####...###
######.......##........##..######....#....##......#........#####...###
###########..##...###..#....####..#..##..##.####..#..#..#..######..###
##..#######..#..####.######..###..##..####..##.##..#######..##########
##...######..#......###..##..###..##..#.........#...#........#########
###..######...##...#####....#####...............................######
############.############..#######..#..########..####..#####...#######
######################################################################

######################################################################
######################################################################
#################################################################.####
##.####.....#######################..###########..##############...###
#..###.......######################...##########...##############...##
#..###..#.##.######################...##########.....#############...#
##..##..##...#####################.....##..#####..#.......#########..#
##......##...#####################..........###..###.......#######..##
##.##..####...####################..###..#..###...#......#..#####...##
##....######...###################..##.#.#..####...#.####....###....##
##...########....################..##.....#..####.#.#######....#...###
#...########.#....###################..#..#..#####...#######......####
#...#######........########.########...##..#..####....#######....#####
##.####.......###......###...#######..##...##..####...################
######.....#########....###..#######......#....####...###########.####
#####..#.#############...###..######....##...#..###.#.##########..####
####....###############.......######...##...#....#..#..########...####
####..#..##....#####...#.......####...##...#.....#..#...#######...####
######..........###.......###...##...#....##..##....##...######....###
######.##..####..#...##....###......#...##...###.#...##..######.##..##
#####..##.##..#...##..#......##....##..##........##...##..####...#..##
####.....#.....#...#...##.#..#.........#...##..#..###..#...###..#...##
####..#...#.#...#...#..###......###..##....##.##....#......##..#....##
####.###...#.#...#..#..##....#...##..#...#.....#.....#...##.......#.##
#########.....#..##.........###.........##..#........##.##...##..##..#
######...#....##.#....##..##..##..#..#......##...##..##......##.##...#
#####......#..##....##....#...#..##..##.#.......###..###..##..#.#...##
####.........##...####...#...#...##..#.#...#.##..#...####..#...##..###
####...##...###..########...##......#...#..####...#...###..##...#.####
####...##....##..########..##...#...#....#.........#...#.....#....####
###.#.....#...##.#######...#...#...#..##..#...#######.#...#...##..####
##...##...##..##..######.....##...##..##...#.#######.....###...#..####
##...###..##...#...#####..#..#...###......#.#######.....#.#.......####
###..................###.##...#.###..#..##...#####...###......##..####
###.....##...###.##...#.###...####...###.#...........##....#..##...###
##...#...##.#####.####...#.##.#####...#....##....##.......###....#..##
##..###.....####...###..#......#####.....#.##.#..###..##.#####..##..##
##.....##...#####......#...##....###....##..#..#......#..#########..##
###.....#....#####......######....#..##..#..#..##....##...########...#
####.....##...####..##..########..#..##.....#..##.#####...########...#
######..###....###...##..########.......##..#......###..##########..##
#######.##..#....##..###..#######..##...##..##.........###.######..###
#######.....##....#...###..######..##..#.......##.##.#.....#####...###
########.....###.......##..######.....#...........#..#.....#####...###
##########...##...##..####..####.........##.###.....#####..######.####
###########......##########..###..###.#.###..#.###..######..##########
###########........#######...###...#.##.........##...........#########
###########...##..#######...#####..............................#######
##################################.....########..####..#####..########
######################################################################

######################################################################
######################################################################
######################################################################
#######.....##########################################################
######......########################.############..###################
######..#....######################...##########.....#################
#####...##...#####################..#..##..#####..#.......############
#####...##...#####################..##......###..###.#.....#######.###
####...####...####################..###.##..###...#.........#####...##
###...######...###################..##..##..####.....####....###....##
##...########.#..####################........####..########.....#..###
#...########.##...###################..#..#..#####...#######......####
#...#######........#################..##..##..####....#######....#####
#######.......###......#############..##...#...####...################
######.....#########....############.#....#.#..####...################
#####...##############...###.#######.....#..##..###...##########.#####
####..#.################......######..###...##...#..#..########...####
######...##....#####...##......####...##...#.......##...#######...####
######..........###.....##.##...##...#....##..##....##...######....###
######.#...#.##..##..##.....##..#..##....##...#..#...##..######.##..##
#####..##.#.#.#...#..##...#..##.#..##..##........##...##..####..##..##
####.....#.....##..#...####..#.........##..##..#...#...##..###..#...##
####......#.#...#..##..###..#...###..##....##.###.###......##..##...##
########..####.....##........#...##.##..##.....#.........#..........##
########.#.......##...##..#...#.........##..##....#.....###..#...##..#
######..###....##.....##..##..##.....#...#..##...##..........#...##..#
#####....##...##....##....#...#..##..##..##......##.####...#..#.....##
####..#...#..##...#####..#...##..##...##.....###.....####.##...##..###
####..##..#..##..########...##..##..#...#...###.......###...##..#.####
####...##.#..##..########..##...#...#....###...........#.....#....####
###...........##.#######..#....#......##..#...#########...#...##..####
##..###...##..##..######..#..##...#...##.....#######.....####..#..####
##..####..###......#####....##...##.#....#...######.....#..##.....####
###....#.............#####......###.##..###...####..#####.....##..####
###.....##...###.....######....####..##....#.........##.......##...###
##..##...##.####..########..#######..##....##.#...##......###.......##
##..##......####...######......#####....#..###.#..##...#.#####..#...##
##..##.##...#####......######....###....##..#...#.....#..#########..##
###....##....#####.#....######....#..##..#.....##....##...########...#
####....##.#..####..#...########.....##....##..##...###..#########...#
######..###....###...##..########.#......#..##..#.......##########..##
#######..#..#....##..###..#######..##..####..#..#.##....#########..###
#######...#.......##..###..######..##.##..#....#..##..#...######...###
########..#..###......###..######.....#......#.......###...#####...###
##########..####..##.#####..####..#......#..###..#..#####..###########
###########.#.....########...###..##.##.####....##...#####..##########
###########.......########...###..#..##.......#..#..#........#########
############..##.################.............................########
##################################..#..########..####..#####.#########
######################################################################

Iterations 5-7: Coalescing smaller islands

######################################################################
######################################################################
######################################################################
#######....###########################################################
######......#####################################..###################
######.......###################################.....#################
#####........############################..#####..........############
#####...##...############################...###...#........###########
####...####...############################..###...#.........#####..###
###...######...#######################..#...####.....####....###...###
##...########....####################........####....######........###
#...########......###################........#####...#######......####
##.########........#################...#......####....#######....#####
#######.......###......#############...#.......####...################
######.....#########....############...........####...################
#####....#############...###########.....#......###...################
######...##############.......######.........#.........#########.#####
######.........#####...........####...##................#######...####
######..........###.....#.......##.........#...#.........######....###
######...........##.................#......#..#...#......######.....##
#####...#...#.................#.....#...#.................####...#..##
####...........#........##.....#....................#..#...###...#..##
#####..........#....#.......#..................#....##..............##
#######.....##...................##..#.........#.....#........##....##
#######.....#.....##...#.................................##..........#
######.....................#.............#...#...................#...#
#####.....#.....#...##....#...........#...#......##...##............##
####..............#####............#...#.....##..##...###..#.......###
####...#.........#######.....#...#..#.................###.........####
####....#..#.....#######........#.........##..........##......#...####
###..............#######..#............#...#..######...........#..####
##...##.......##..######......#..............#######........#.....####
##....#....#.......######...##...#...........######......#..#.....####
###.................######......###......#....####......##.....#..####
###......#...##..#..######.....####...#..............#.........#...###
##..........####...#######.....####...#.............#.....###.......##
##..........####....#######.....####........#......#.....#####......##
##...#......#####......######....###.....#...#....#......########...##
###..........#####......######........#..............#...#########...#
####..........####......########......#.........#....#...#########...#
######.....#...###.......########............#..........##########..##
#######..........##.......#######.........#........#.....########..###
#######................#...######..#..##..#....##.........######...###
########.....##.......###..######....................###...######.####
##########...##......#####..####.....................####..###########
###########........#######...###..#......#####...##..####...##########
###########.......#########.####...#..#......................#########
############..###################............................#########
##################################.....########..####..###############
######################################################################

######################################################################
######################################################################
######################################################################
#######....###########################################################
######......#####################################..###################
######..##...###################################.....#################
#####........###################################..#.......############
#####...##...##################################...##.......###########
####...####...############################.####.............#####.####
###...######...#######################......####......###....###...###
##...#######.....####################....#...####..#.######........###
##..########.#....###################..#.##..#####...#######......####
###########........#################......#...####....#######....#####
#######.......###......#############..##...#...####...################
######.....#########....############..#...#.#..####...################
######....############...###########.....#...#..##..#.################
######..#..###########........######..#..#...#.....##..###############
######..#......#####...##..#...####...#..#......#...#...########..####
######..#.#.....###....#..###...##....#....#...#.#...#...######....###
######.....###...#..##.......#......#..#...##.#...#..##..######.....##
#####..##...........#...#.....#..#.##..##..#...#.#........####..##..##
#####..##.#....##..#...#.###...#.......#..#............##..##....#..##
######....#.....#....##.....#.#......#...##.##..##..#..#............##
#######..#...#...........#...#...##.##..........##..#.....#..###.#..##
#######.#...###...##...##...#.#.##.....##...#.......#....##..#...#...#
######...#.....#...........#...#..........#...#..............#...#...#
#####....##.#..#....##...##...#...##..#...#...#...#........#..##....##
####..#.....##....#####..#...#........##......#..###...#..##...#...###
####..#.......#..#######....#...#..#..................##..#.......####
####....###......#######..##...##.###..#..##.............#...#.#..####
###......#..#....#######..#...........##..#...#####.##..#...#..#..####
##...##.....#..#..######.....#......#..#.....#######.#.........#..####
##...#.#...#...#...######...##......#...#.#..######.......#.#.....####
###.....#.#.........######..#...##.......##...####...#..#......#..####
###.##...#...##..#..######..#..####..##...#..........#.#.......##..###
##...#..#...####....######.....####...##...#...#......#...###.......##
##.....##...####.....######.....####....#...#.##..##.....#####......##
##...#..#...#####..#...######....##......#........#...#..########...##
###.....##...#####.##...######.......##..##.#..#.....##..#########...#
####....#.....####..##..########..##..#.....#..##.#......#########...#
######....##...###...#...########..#..............##..#..#########..##
#######..##........#......#######.....#..##.##...........########..###
#######..........###.......######..#..#..#..#..###........#######..###
########......#..#....###..######..##.#........#......##...###########
##########...##......#####..####..................#..####..###########
###########........#######..####..#...#..#..###..##...##....##########
###########.......##############...#.#.......................#########
############..###################...........................##########
##################################.....########..####..###############
######################################################################

######################################################################
######################################################################
######################################################################
#######....###########################################################
######......#####################################..###################
######...#...###################################.....#################
#####........###################################..........############
#####...##...##################################..####......###########
####...####...#################################.............##########
###...######...#######################......####......###....###..####
##...#######.....####################........####....######.......####
############..#...###################....#...#####...#######......####
###########........#################..........####....#######....#####
#######.......###......#############..##...#...####...################
######.....#########....############...........####...################
######..#..##########....###########.....#..#...##....################
######......#########.........######..#..#..##.........###############
######...#.....#####...#.......####.................#...########..####
######..........###.....#..##...##...............#.......######....###
######......##.......#..............#...#...#.#...#..##..######.....##
#####.......#.................#....#..............#.......####...#..##
#####....#.....##.##.......#...#..#...#....................##....#..##
######....#..........##..#...............##..##.....#.##............##
#######......................#......#...........##.....#............##
#######.......##..##...#........#..##..#........#...#....##..#..##...#
######...#.................#...#.........###........##...............#
#####....#..#...#...##....#...#............#..#................#....##
####...#.....#....#####......#........##.....##..##....#...##..#...###
####..#.......#..#######..........................................####
####.....#.......#######..##...##..#......##.........#..##........####
###......#..#....#######..#....##..#...#......#####.#...#...#.##..####
##....#.....#..#..######...............#.....#######...#...#......####
##.....#.......#...######....#......#........######........#......####
###.......#.........######..#...##.......#....####......#.....#...####
###..#....#..##..#..######..#..####...#...#.........#..#.......#...###
##..........####....######.....####....#...#..............###...#...##
##..#.......####.....######.....###...........##..#......#####......##
##...#...#..#####......######....#...#...#........#..#...########...##
###..........#####......######........#..#..#.........#..#########...#
####...#......####...#..########...#...#.......#...#..#..#########...#
######.....#...##....##..########..#...............#..#..#########..##
#######..####.............#######........#..#......#.....########..###
#######...........##.......######.....#..#..#...#..#......############
########......#..#....###..######..#..#..#.....#......##...###########
##########...##.#....#####..####...#.....#............##...###########
###########........#############......#..#..##.#.###....##..##########
###########.......##############...#.##..............#......##########
############..###################..........................###########
##################################.....########..####..###############
######################################################################

Iteration 8: prune out isolated walls

######################################################################
######################################################################
######################################################################
#######....###########################################################
######......#####################################..###################
######.......###################################.....#################
#####........###################################..........############
#####...##...##################################............###########
####...####...#################################.............##########
###...######...#######################......####......###....###.#####
############.....####################........####....######.......####
############......###################........#####...#######......####
###########........#################..........####....#######....#####
#######.......###......#############...........####...################
######......########....############...........####...################
######......#########....###########............##....################
######.......########.........######...................###############
######.........#####...........####.....................########..####
######..........###.............##.......................######....###
######...................................................######.....##
#####.....................................................####......##
#####......................................................##.......##
######..............................................................##
#######.............................................................##
#######..............................................................#
######...............................................................#
#####...............##..............................................##
####..............#####............................................###
####.............#######..........................................####
####.............#######..........................................####
###..............#######......................#####...............####
##................######.....................######...............####
##.................######....................######...............####
###.................######......##............####................####
###..........##.....######.....####................................###
##..........####....######.....####.......................###.......##
##..........####.....######.....###......................#####......##
##..........#####......######............................########...##
###..........#####......######...........................#########...#
####..........####......########.........................#########...#
######.........##........########........................#########..##
#######...................#######........................#############
#######....................######.........................############
########..............###..######..........................###########
##########...........###########...........................###########
###########........#############............................##########
###########.......##############............................##########
############..###################..........................###########
##################################.....########..####..###############
######################################################################

This was my first “procedural generation” of any kind, so … I’m quite pleased 🙂. The repository is here2 at Bitbucket.

#topublish

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s