@program MazeCraze.muf 1 1000 d i $include $lib/alynna $def ROOMS { #2951 #2952 #2953 #2954 #2955 #2956 #2957 #2958 #2959 }array $def ARENA #2940 $def RM ROOMS swap [] $def N "N" rmatch $def S "S" rmatch $def E "E" rmatch $def W "W" rmatch $def LINK over #-1 setlink setlink $def }T }cat "Hypercube" pretty tellhere : mc.reset ( Reset Maze ) { "Maze RESET" }T (****************************************************************) (*) 0 rm n 6 rm link (*) 1 rm n 7 rm link (*) 2 rm n 8 rm link (*) (*) 0 rm s 3 rm link (*) 1 rm s 4 rm link (*) 2 rm s 5 rm link (*) (*) 0 rm e 1 rm link (*) 1 rm e 2 rm link (*) 2 rm e 0 rm link (*) (*) 0 rm w 2 rm link (*) 1 rm w 0 rm link (*) 2 rm w 1 rm link (*) (****************************************************************) (*) 3 rm n 0 rm link (*) 4 rm n 1 rm link (*) 5 rm n 2 rm link (*) (*) 3 rm s 6 rm link (*) 4 rm s 7 rm link (*) 5 rm s 8 rm link (*) (*) 3 rm e 4 rm link (*) 4 rm e 5 rm link (*) 5 rm e 3 rm link (*) (*) 3 rm w 5 rm link (*) 4 rm w 6 rm link (*) 5 rm w 4 rm link (*) (****************************************************************) (*) 6 rm n 3 rm link (*) 7 rm n 4 rm link (*) 8 rm n 5 rm link (*) (*) 6 rm s 0 rm link (*) 7 rm s 1 rm link (*) 8 rm s 2 rm link (*) (*) 6 rm e 7 rm link (*) 7 rm e 8 rm link (*) 8 rm e 6 rm link (*) (*) 6 rm w 8 rm link (*) 7 rm w 6 rm link (*) 8 rm w 7 rm link (*) (****************************************************************) ; : mc.maze var curroom var tmp1 var tmp2 mc.reset ( Starting room goes .. somewhere ) 0 8 1 for curroom ! begin random 4 % case 0 = when curroom @ rm n random 9 % rm over over tmp1 ! tmp2 ! link end 1 = when curroom @ rm s random 9 % rm over over tmp1 ! tmp2 ! link end 2 = when curroom @ rm e random 9 % rm over over tmp1 ! tmp2 ! link end 3 = when curroom @ rm w random 9 % rm over over tmp1 ! tmp2 ! link end endcase tmp2 @ curroom @ rm dbcmp not if break then repeat { "RANDOMIZE: Teleporter " tmp2 @ name ";" split pop " in " curroom @ rm name "" "[Cinnabar Maze] " subst " goes to " tmp1 @ name "" "[Cinnabar Maze] " subst }T repeat random 4 % case 0 = when random 9 % rm dup tmp1 ! n dup tmp2 ! ARENA link end 1 = when random 9 % rm dup tmp1 ! s dup tmp2 ! ARENA link end 2 = when random 9 % rm dup tmp1 ! e dup tmp2 ! ARENA link end 3 = when random 9 % rm dup tmp1 ! w dup tmp2 ! ARENA link end endcase { "RANDOMIZE: Teleporter " tmp2 @ name ";" split pop " in " tmp1 @ name "" "[Cinnabar Maze] " subst " goes to " ARENA }T { "Maze randomized." }T ; . c q