This module is pretty much copied from a roguelike that I started writing.
example 1:
use Games::Roguelike::Caves;
my $map = generate_cave(50,20);
for (@$map){
for (@$_){
print;
}
print "\n"
}
OUTPUT:
........ ......
.......... ...... ........
............... ........ .........
................. ...................
................. ..................
................ ...................
.. ............... .....................
.... ..... ....... .....................
.... ... ...... ....... ............
.... ... ...... .... ...........
.. .... ..... .. ...........
...... .... .. .........
.......... .... ... .........
............ .. .... ..........
.............. ...... ...... ..
............... ...... ......
... ...... ..... .....
.... ... ...
example 2:
use Games::Roguelike::Caves;
my $map = generate_cave(50,20);
outline_walls ($map);
for (@$map){
for (@$_){
print;
}
print "\n"
}
OUTPUT:
|-------------|
|---| |-.............-|
|--| |-...-| |...............|
|--..-||-.....| |...............| |--|
|-.....--......| |-......----....-| |-..-|
|.............-| |-....-| |-....-| |-....|
|............-| |-...-| |-.....---.....|
|-...........| |-....----..............|
|-..........| |----.......................|
|-.........| |-..........................-|
|-.........| |-...........................|
|.........-| |............................|
|........-| |...........................-|
|........-| |.......................----|
|-........-| |-.....................-|
|---......| |-...................-|
|-.....| |...................|
|....-| |..................-|
|-..-| |-.............----|
|--| |-------------|
Ecample 3:
use Games::Roguelike::Caves;
#2 iterations, 50% walls...
my $map = generate_cave(50,20,2,.5,"W",' ');
outline_walls ($map,"W",' ');
for (@$map){
for (@$_){
print;
}
print "\n"
}
OUTPUT:
W|---|WW|-----|WW|-|WWWWWW|---|W|----|WWWWWW|--|WW
W| -||- -||- |WWWW|-- --- ----|W|- |WW
W| -- -- |WWW|- --| |WW
W|- --- --|WW|- | |WW
WW|- --|-- |WWWW| --- |WW
W|-- -||- ||-|W|- -|W| | -|W
W| -|| -|- --- |----- --| -|
|- || | -- |-- | |
| -- -||--- |
| -- --|W| |
| -||- ---- ||- | |
| -|WW| -|WW| -- -|- |
|------| --||----- ----- |W|- |
W| |--|W|- | -|WW|----- -||- |
W|- |W|--| -|WWW|--|---- || |
W| ||- -- -- |WW|- -|WW|-- -|| |
W|--- -|- || -|WW| |WWWW|-|W| -|
WWWW|-|| | | | || |WWW|- |WWWWWWWW|--|W
WWWWWWW|- |-|-|---|| --|WWWW|- |WWWWWWWWWWWWW
WWWWWWWW|-----|WWWWWWWW|-|WWWWWWW|--|WWWWWWWWWWWWW