{ SEAN PALMER > Hello there.. I was just wondering.. Since I am completely 'C' > illiterate, could someone please make an effort and convert the > following code in Pascal For me? (Its supposedly makes a solveable > maze every time, Cool) {originally by jallen@ic.sunysb.edu} {Turbo Pascal conversion by Sean Palmer from original C} Const h = 23; {height} w = 79; {width} Const b : Array [0..3] of Integer = (-w, w, 1, -1); { incs For up, down, right, left } Var a : Array [0..w * h - 1] of Boolean; { the maze (False = wall) } Procedure m(p : Integer); Var i, d : Byte; begin a[p] := True; {make a path} Repeat d := 0; {check For allowable directions} if (p > 2 * w) and not (a[p - w - w]) then inc(d, 1); {up} if (p < w * (h - 2)) and not (a[p + w + w]) then inc(d, 2); {down} if (p mod w <> w - 2) and not (a[p + 2]) then inc(d, 4); {right} if (p mod w <> 1) and not (a[p - 2]) then inc(d, 8); {left} if d <> 0 then begin Repeat {choose a direction that's legal} i := random(4); Until Boolean(d and(1 shl i)); a[p + b[i]] := True; {make a path} m(p + 2 * b[i]); {recurse} end; Until d = 0; {Until stuck} end; Var i : Integer; begin randomize; fillChar(a, sizeof(a), False); m(succ(w)); {start at upper left} For i := 0 to pred(w * h) do begin {draw} if i mod w = 0 then Writeln; if a[i] then Write(' ') else Write('Û'); end; end.