#!/usr/bin/perl $preamble = "

You are in a maze of twisty little web pages, all alike.\n"; $postamble = "\n"; sub load_maze { my $fname = shift; my (@maze, $x, $y, $i); open(FD, $fname) || die "Cant open $fname: $!"; $y = 0; while() { chomp; $x = length unless ($y != 0); for($i=0; $iindex.html") || die "cant write to data file: $!\n"; } else { open(FD, ">".genfname($i, $j)) || die "cant write to data file: $!\n"; } $oldfd = select(FD); print $preamble; if($c eq "E") { print "you\'ve made it to the end!\n"; print $postamble; close(FD); select($oldfd); return; } print "

\n";
    for($a=0; $a<$y; $a++) {
	for($b=0; $b<$x; $b++) {
	    if($b == $i && $a == $j) {
		print "\@";
	    } else {
		print $maze[$b][$a];
	    }
	}
	print "\n";
    }
    print "
\n"; if($j >= 2 && $maze[$i][$j-1] eq " ") { print "[North]\n"; } else { print "[North]\n"; } if($j != $y && $maze[$i][$j] eq " ") { print "[South]\n"; } else { print "[South]\n"; } if($i >= 1 && $maze[$i-1][$j] ne "|") { print "[West]\n"; } else { print "[West]\n"; } if($i != $x && $maze[$i+1][$j] ne "|") { print "[East]\n"; } else { print "[East]\n"; } print $postamble; close(FD); select($oldfd); } sub gen_html { my ($x, $y, @maze) = @_; my ($i, $j); for($i=1; $i<$x; $i++) { for($j=1; $j<$y; $j++) { spew_page($i, $j, $x, $y, @maze); } } } # # main # ($x, $y, @maze) = load_maze($ARGV[0]); print "have a $x by $y maze heere. hmm\n"; @maze = place_start_end($x, $y, @maze); gen_html($x, $y, @maze);