mazegenerator
1.0.0
สร้างเขาวงกตที่มีรูปร่างและขนาดต่างกัน
เครื่องกำเนิดเขาวงกตสามารถสร้างเขาวงกตสี่เหลี่ยม หกเหลี่ยม รังผึ้ง และวงกลมได้ การสร้างเขาวงกตสามารถทำได้โดยใช้อัลกอริธึมของ Kruskal, การค้นหาเชิงลึกก่อน, การค้นหาแบบกว้างก่อน, การเดินแบบสุ่มแบบวนซ้ำ หรืออัลกอริทึมของ Prim เขาวงกตสามารถเรนเดอร์ในรูปแบบ svg หรือ png (โดยใช้ gnuplot เป็นตัวกลางในกรณีหลัง)
ตัวสร้างเขาวงกตใช้ gnuplot (พร้อมการเรียกระบบ gnuplot
) เพื่อเรนเดอร์ png เขาวงกต ดังนั้นตรวจสอบให้แน่ใจว่าได้ติดตั้ง gnuplot 5.0+
พร้อมรองรับเทอร์มินัล pngcairo
และอยู่ในเส้นทางหากคุณต้องการใช้ png
โค้ดนี้เขียนด้วยภาษา C++ 11 คุณจะต้องใช้คอมไพเลอร์ C++ ที่ไม่โบราณเกินไปในการสร้าง
cd src; make
Usage: mazegen [--help] [-m <maze type>] [-a <algorithm type>] [-s <size> | -w <width> -h <height>] [-t <output type] [-o <output prefix>] Optional arguments --help Show this message and exit -m Maze type 0: Rectangular (default) 1: Hexagonal (triangular lattice) 2: Honeycomb 3: Circular 4: Circular (triangular lattice) 5: User-defined -a Algorithm type 0: Kruskal's algorithm (default) 1: Depth-first search 2: Breadth-first search 3: Loop-erased random walk 4: Prim's algorithm -s Size (non-rectangular mazes, default: 20) -w,-h Width and height (rectangular maze, default: 20) -t Output type 0: svg output (default) 1: png output using gnuplot (.plt) intermediate -o Prefix for .svg, .plt and .png outputs (default: maze)
ส่วนโค้งในเขาวงกตทรงกลมถูกพล็อตเป็นเส้นโค้งพาราเมตริกใน gnuplot และ PNG อาจใช้เวลานานในการแสดงผลเขาวงกตขนาดใหญ่