NOTE: all of the newer stuff is located in the separate/ directory (I wanted to try making a makefile, and this was the first project I'd done that was big enough to warrant one). Build instructions for maze and los2 on Linux/Mac OS X: You have ncurses, right? Right. g++ -o los2 los2.cpp -lncurses g++ -o maze maze.cpp -lncurses On Windows: I know nothing about cursed libraries written for Windows, other than their existance and the fact that they differ from those on Linux. However, I have seen it compiled using Cygwin... Usage: los2 wants a maximum distance: "los2 80", for instance, is equivalent to putting no bounds on the distance of the line of sight. The default distance is 10. If you'd rather have the map read from a file than randomly generated, use "los2 [distance] [filename]". maze expects an input file containing a valid description of a grid-manifold. If no file is given, it looks for a file called "maze.txt" in the current directory. If you want to try out the random manifolds, use "maze -r". Follow that up with how big you want the manifold to be (default is 1000 locations). "maze -r 40" tends to produce very interesting results, as well. pfov is the same as los2, except it solves the "permissive field of view" problem instead of my "digital field of view" problem.