Compare commits
No commits in common. "6c08637b133f21788ac7a67079d75aabcd7b2d8b" and "b6953af967958ca476eff539c3f1bc9a99aa4cea" have entirely different histories.
6c08637b13
...
b6953af967
BIN
graphs.cmi
BIN
graphs.cmi
Binary file not shown.
BIN
graphs.cmo
BIN
graphs.cmo
Binary file not shown.
312
graphs.ml
312
graphs.ml
|
@ -824,10 +824,6 @@ let another_type_of_bfs (gr : type2graph) r dx dy gwd ght dt =
|
||||||
with
|
with
|
||||||
| Stdlib.Queue.Empty -> ignore (Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity) ;;
|
| Stdlib.Queue.Empty -> ignore (Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity) ;;
|
||||||
|
|
||||||
(* --------------------------------------------------------------- *)
|
|
||||||
(* ---AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA--- *)
|
|
||||||
(* --------------------------------------------------------------- *)
|
|
||||||
|
|
||||||
type 'a dyna = {mutable memlen : int ; mutable len : int ; a : ('a * int) array};;
|
type 'a dyna = {mutable memlen : int ; mutable len : int ; a : ('a * int) array};;
|
||||||
|
|
||||||
let create_d n i =
|
let create_d n i =
|
||||||
|
@ -888,266 +884,8 @@ let update_p da elt newp =
|
||||||
end
|
end
|
||||||
done;;
|
done;;
|
||||||
|
|
||||||
let me_out_of_this_thing (gr : type2graph) r dx dy dt =
|
let me_out_of_this_thing (gr : type2graph) =
|
||||||
let colors = Array.make_matrix gr.width gr.height (rgb 0 0 0) in
|
|
||||||
for i = 0 to gr.width -1 do
|
|
||||||
for j = 0 to gr.height -1 do
|
|
||||||
if (i*gr.width + j) mod 6 = 0 then
|
|
||||||
colors.(i).(j) <- rgb 0 0 200
|
|
||||||
|
|
||||||
else if (i*gr.width + j) mod 6 = 1 then
|
|
||||||
colors.(i).(j) <- rgb 0 200 0
|
|
||||||
|
|
||||||
else if (i*gr.width + j) mod 6 = 2 then
|
|
||||||
colors.(i).(j) <- rgb 0 200 200
|
|
||||||
|
|
||||||
else if (i*gr.width + j) mod 6 = 3 then
|
|
||||||
colors.(i).(j) <- rgb 200 0 0
|
|
||||||
|
|
||||||
else if (i*gr.width + j) mod 6 = 4 then
|
|
||||||
colors.(i).(j) <- rgb 200 0 200
|
|
||||||
|
|
||||||
else
|
|
||||||
colors.(i).(j) <- rgb 200 200 0
|
|
||||||
done
|
|
||||||
done;
|
|
||||||
|
|
||||||
let roff = (9*r)/8 in
|
|
||||||
let roff2 = (7*r)/5 in
|
|
||||||
let rsize = (3*r)/4 in
|
|
||||||
let wcolor = rgb 255 255 255 in
|
|
||||||
let bcolor = rgb 150 150 150 in
|
|
||||||
let ncolor = rgb 150 150 150 in
|
|
||||||
|
|
||||||
let xdists = [|-roff ; -roff2; -roff; 0; roff; roff2; roff; 0|] in
|
|
||||||
let ydists = [|-roff; 0; roff ; roff2; roff; 0; -roff ;-roff2|] in
|
|
||||||
|
|
||||||
set_line_width 4;
|
|
||||||
set_color (rgb 122 122 122) ;
|
|
||||||
for i = 0 to gr.width -1 do
|
|
||||||
for j = 0 to gr.height -1 do
|
|
||||||
let node_xy = ((r + (2*r + dx)*i), (r + (2*r + dy)*j)) in
|
|
||||||
if (i > 0 && j > 0) && gr.g.(i).(j).edges.(0) <> (-1) then begin (* SO *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(0), snd node_xy + ydists.(0)); (xdists.(4) + r + (2*r + dx)*(i-1)), (ydists.(4) + r + (2*r + dy)*(j-1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i > 0) && gr.g.(i).(j).edges.(1) <> (-1) then begin (* O *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(1), snd node_xy + ydists.(1)); (xdists.(5) + r + (2*r + dx)*(i-1)), (ydists.(5) + r + (2*r + dy)*j)|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i > 0 && j < gr.height -1) && gr.g.(i).(j).edges.(2) <> (-1) then begin (* NO *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(2), snd node_xy + ydists.(2)); (xdists.(6) + r + (2*r + dx)*(i-1)), (ydists.(6) + r + (2*r + dy)*(j+1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (j < gr.height -1) && gr.g.(i).(j).edges.(3) <> (-1) then begin (* N *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(3), snd node_xy + ydists.(3)); (xdists.(7) + r + (2*r + dx)*i), (ydists.(7) + r + (2*r + dy)*(j+1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i < gr.width-1 && j < gr.height -1) && gr.g.(i).(j).edges.(4) <> (-1) then begin (* NE *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(4), snd node_xy + ydists.(4)); (xdists.(0) + r + (2*r + dx)*(i+1)), (ydists.(0) + r + (2*r + dy)*(j+1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i < gr.width-1) && gr.g.(i).(j).edges.(5) <> (-1) then begin (* E *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(5), snd node_xy + ydists.(5)); (xdists.(1) + r + (2*r + dx)*(i+1)), (ydists.(1) + r + (2*r + dy)*j)|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i < gr.width-1 && j > 0) && gr.g.(i).(j).edges.(6) <> (-1) then begin (* SE *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(6), snd node_xy + ydists.(6)); (xdists.(2) + r + (2*r + dx)*(i+1)), (ydists.(2) + r + (2*r + dy)*(j-1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (j > 0) && gr.g.(i).(j).edges.(7) <> (-1) then begin (* S *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(7), snd node_xy + ydists.(7)); (xdists.(3) + r + (2*r + dx)*i), (ydists.(3) + r + (2*r + dy)*(j-1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
done
|
|
||||||
done;
|
|
||||||
|
|
||||||
set_line_width 4;
|
|
||||||
for i = 0 to gr.width -1 do
|
|
||||||
for j = 0 to gr.height -1 do
|
|
||||||
let node_xy = ((r + (2*r + dx)*i), (r + (2*r + dy)*j)) in
|
|
||||||
if (i > 0 && j > 0) && gr.g.(i).(j).edges.(0) <> (-1) then begin (* SO *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy - roff) (snd node_xy - roff) (3*rsize/4) ;
|
|
||||||
if (i > 0 && j > 0) && gr.g.(i).(j).edges.(0) <> (-1) then begin (* SO *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy - roff) (snd node_xy - roff) gr.g.(i).(j).edges.(0) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i > 0) && gr.g.(i).(j).edges.(1) <> (-1) then begin (* O *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy - roff2) (snd node_xy) (3*rsize/4) ;
|
|
||||||
if (i > 0) && gr.g.(i).(j).edges.(1) <> (-1) then begin (* O *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy - roff2) (snd node_xy) gr.g.(i).(j).edges.(1) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i > 0 && j < gr.height -1) && gr.g.(i).(j).edges.(2) <> (-1) then begin (* NO *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy - roff) (snd node_xy + roff) (3*rsize/4) ;
|
|
||||||
if (i > 0 && j < gr.height -1) && gr.g.(i).(j).edges.(2) <> (-1) then begin (* NO *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy - roff) (snd node_xy + roff) gr.g.(i).(j).edges.(2) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (j < gr.height -1) && gr.g.(i).(j).edges.(3) <> (-1) then begin (* N *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy) (snd node_xy + roff2) (3*rsize/4) ;
|
|
||||||
if (j < gr.height -1) && gr.g.(i).(j).edges.(3) <> (-1) then begin (* N *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy) (snd node_xy + roff2) gr.g.(i).(j).edges.(3) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i < gr.width-1 && j < gr.height -1) && gr.g.(i).(j).edges.(4) <> (-1) then begin (* NE *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy + roff) (snd node_xy + roff) (3*rsize/4) ;
|
|
||||||
if (i < gr.width-1 && j < gr.height -1) && gr.g.(i).(j).edges.(4) <> (-1) then begin (* NE *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy + roff) (snd node_xy + roff) gr.g.(i).(j).edges.(4) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i < gr.width-1) && gr.g.(i).(j).edges.(5) <> (-1) then begin (* E *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy + roff2) (snd node_xy) (3*rsize/4) ;
|
|
||||||
if (i < gr.width-1) && gr.g.(i).(j).edges.(5) <> (-1) then begin (* E *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy + roff2) (snd node_xy) gr.g.(i).(j).edges.(5) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (i < gr.width-1 && j > 0) && gr.g.(i).(j).edges.(6) <> (-1) then begin (* SE *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy + roff) (snd node_xy - roff) (3*rsize/4) ;
|
|
||||||
if (i < gr.width-1 && j > 0) && gr.g.(i).(j).edges.(6) <> (-1) then begin (* SE *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy + roff) (snd node_xy - roff) gr.g.(i).(j).edges.(6) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (j > 0) && gr.g.(i).(j).edges.(7) <> (-1) then begin (* S *)
|
|
||||||
set_color bcolor;
|
|
||||||
end else begin
|
|
||||||
set_color ncolor ;
|
|
||||||
end;
|
|
||||||
fill_circle (fst node_xy) (snd node_xy - roff2) (3*rsize/4) ;
|
|
||||||
if (j > 0) && gr.g.(i).(j).edges.(7) <> (-1) then begin (* S *)
|
|
||||||
set_color wcolor;
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy) (snd node_xy - roff2) gr.g.(i).(j).edges.(7) rsize;
|
|
||||||
end;
|
|
||||||
|
|
||||||
done
|
|
||||||
done;
|
|
||||||
|
|
||||||
set_line_width 5;
|
|
||||||
for i = 0 to gr.width -1 do
|
|
||||||
for j = 0 to gr.height -1 do
|
|
||||||
set_color (rgb 32 32 32) ;
|
|
||||||
fill_circle (r + (2*r + dx)*i) (r + (2*r + dy)*j) r ;
|
|
||||||
set_color (rgb 100 100 100) ;
|
|
||||||
draw_circle (r + (2*r + dx)*i) (r + (2*r + dy)*j) r ;
|
|
||||||
done
|
|
||||||
done ;
|
|
||||||
|
|
||||||
let draw_tile i j p =
|
|
||||||
set_line_width 5;
|
|
||||||
set_color colors.(i).(j);
|
|
||||||
draw_integer (r + (2*r + dx)*i) (r + (2*r + dy)*j) p r ;
|
|
||||||
in
|
|
||||||
|
|
||||||
let offx = [|-1; -1; -1; 0; 1; 1; 1; 0|] in
|
|
||||||
let offy = [|-1; 0; 1; 1; 1; 0; -1; -1|] in
|
|
||||||
|
|
||||||
let w = gr.width and h = gr.height in
|
let w = gr.width and h = gr.height in
|
||||||
let is_valid i j =
|
|
||||||
(i >= 0) && (j >= 0) && (i < w) && (j < h)
|
|
||||||
in
|
|
||||||
|
|
||||||
let draw_path i j side =
|
|
||||||
let node_xy = ((r + (2*r + dx)*i), (r + (2*r + dy)*j)) in
|
|
||||||
set_color (rgb 32 220 32);
|
|
||||||
if side = 0 then begin (* SO *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(0), snd node_xy + ydists.(0)); (xdists.(4) + r + (2*r + dx)*(i-1)), (ydists.(4) + r + (2*r + dy)*(j-1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if side = 1 then begin (* O *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(1), snd node_xy + ydists.(1)); (xdists.(5) + r + (2*r + dx)*(i-1)), (ydists.(5) + r + (2*r + dy)*j)|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if side = 2 then begin (* NO *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(2), snd node_xy + ydists.(2)); (xdists.(6) + r + (2*r + dx)*(i-1)), (ydists.(6) + r + (2*r + dy)*(j+1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if side = 3 then begin (* N *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(3), snd node_xy + ydists.(3)); (xdists.(7) + r + (2*r + dx)*i), (ydists.(7) + r + (2*r + dy)*(j+1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if side = 4 then begin (* NE *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(4), snd node_xy + ydists.(4)); (xdists.(0) + r + (2*r + dx)*(i+1)), (ydists.(0) + r + (2*r + dy)*(j+1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if side = 5 then begin (* E *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(5), snd node_xy + ydists.(5)); (xdists.(1) + r + (2*r + dx)*(i+1)), (ydists.(1) + r + (2*r + dy)*j)|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if side = 6 then begin (* SE *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(6), snd node_xy + ydists.(6)); (xdists.(2) + r + (2*r + dx)*(i+1)), (ydists.(2) + r + (2*r + dy)*(j-1))|] ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if side = 7 then begin (* S *)
|
|
||||||
draw_poly_line [|(fst node_xy + xdists.(7), snd node_xy + ydists.(7)); (xdists.(3) + r + (2*r + dx)*i), (ydists.(3) + r + (2*r + dy)*(j-1))|] ;
|
|
||||||
end; if (i > 0 && j > 0) && gr.g.(i).(j).edges.(0) <> (-1) then begin (* SO *)
|
|
||||||
set_color bcolor;
|
|
||||||
end ;
|
|
||||||
|
|
||||||
if side >= 0 then begin
|
|
||||||
set_color black;
|
|
||||||
fill_circle (fst node_xy + xdists.(side)) (snd node_xy + ydists.(side)) (3*rsize/4) ;
|
|
||||||
set_color (rgb 32 255 32);
|
|
||||||
set_line_width 3;
|
|
||||||
draw_integer (fst node_xy + xdists.(side)) (snd node_xy + ydists.(side)) gr.g.(i).(j).edges.(side) rsize;
|
|
||||||
|
|
||||||
let side2 = (side + 4) mod 8 in
|
|
||||||
let node_xy2 = ((r + (2*r + dx)*(i + offx.(side))), (r + (2*r + dy)*(j + offy.(side)))) in
|
|
||||||
set_color black;
|
|
||||||
fill_circle (fst node_xy2 + xdists.(side2)) (snd node_xy2 + ydists.(side2)) (3*rsize/4) ;
|
|
||||||
set_color (rgb 255 32 32);
|
|
||||||
set_line_width 3;
|
|
||||||
|
|
||||||
if is_valid (i + offx.(side)) (j + offy.(side)) then
|
|
||||||
let reversepond = gr.g.(i + offx.(side)).(j + offy.(side)).edges.(side2) in
|
|
||||||
if reversepond <> -1 then
|
|
||||||
draw_integer (fst node_xy2 + xdists.(side2)) (snd node_xy2 + ydists.(side2)) reversepond rsize
|
|
||||||
end
|
|
||||||
in
|
|
||||||
|
|
||||||
(* Actual algo *)
|
|
||||||
let disttab = Array.make_matrix w h (-1) in
|
let disttab = Array.make_matrix w h (-1) in
|
||||||
|
|
||||||
let pq = create_d (w*h) (0, 0) in
|
let pq = create_d (w*h) (0, 0) in
|
||||||
|
@ -1158,54 +896,40 @@ let me_out_of_this_thing (gr : type2graph) r dx dy dt =
|
||||||
done
|
done
|
||||||
done;
|
done;
|
||||||
|
|
||||||
let dirtab = Array.make_matrix w h (-1) in
|
let is_valid i j =
|
||||||
let origintab = Array.make_matrix w h (0, 0) in
|
(i >= 0) && (j >= 0) && (i < w) && (j < h)
|
||||||
|
in
|
||||||
|
|
||||||
|
let offx = [|-1; -1; -1; 0; 1; 1; 1; 0|] in
|
||||||
|
let offy = [|-1; 0; 1; 1; 1; 0; -1; -1|] in
|
||||||
|
|
||||||
update_p pq (w/2, h/2) 0;
|
update_p pq (w/2, h/2) 0;
|
||||||
|
|
||||||
let out_of_connex = ref false in
|
while (is_empty_d pq) = false do
|
||||||
|
|
||||||
let srci = ref (w/2) and srcj = ref (h/2) in
|
|
||||||
|
|
||||||
while !out_of_connex = false && (is_empty_d pq) = false do
|
|
||||||
let ((i, j), p) = remove_min_d pq in
|
let ((i, j), p) = remove_min_d pq in
|
||||||
disttab.(i).(j) <- p;
|
disttab.(i).(j) <- p;
|
||||||
draw_path (fst origintab.(i).(j)) (snd origintab.(i).(j)) dirtab.(i).(j);
|
|
||||||
|
|
||||||
if p <> -1 then begin
|
|
||||||
for nb = 0 to 7 do
|
for nb = 0 to 7 do
|
||||||
let ni = i + offx.(nb) in
|
let ni = i + offx.(nb) in
|
||||||
let nj = j + offy.(nb) in
|
let nj = j + offy.(nb) in
|
||||||
|
|
||||||
if is_valid ni nj then
|
if is_valid ni nj then
|
||||||
if disttab.(ni).(nj) = (-1) && gr.g.(i).(j).edges.(nb) > 0 then begin
|
if disttab.(ni).(nj) = (-1) && gr.g.(ni).(nj).edges.(nb) <> (-1) then begin
|
||||||
let newdist = p + gr.g.(i).(j).edges.(nb) in
|
let newdist = p + gr.g.(i).(j).edges.(nb) in
|
||||||
let oldp = get_p pq (ni, nj) in
|
let oldp = get_p pq (ni, nj) in
|
||||||
if oldp > newdist then begin
|
if oldp > newdist then
|
||||||
update_p pq (ni, nj) newdist;
|
update_p pq (ni, nj) newdist
|
||||||
dirtab.(ni).(nj) <- nb;
|
|
||||||
origintab.(ni).(nj) <- (i, j)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
done
|
||||||
done;
|
done;
|
||||||
|
|
||||||
draw_tile i j p;
|
for j = h-1 downto 0 do
|
||||||
srci := i;
|
|
||||||
srcj := j;
|
|
||||||
Unix.sleepf dt ;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
out_of_connex := true;
|
|
||||||
done;
|
|
||||||
|
|
||||||
(*for j = h-1 downto 0 do
|
|
||||||
for i = 0 to w-1 do
|
for i = 0 to w-1 do
|
||||||
Printf.printf "{[%d %d] : %d} " i j disttab.(i).(j)
|
Printf.printf "{[%d %d] : %d} " i j disttab.(i).(j)
|
||||||
done;
|
done;
|
||||||
print_char '\n'
|
print_char '\n'
|
||||||
done ;
|
done ;
|
||||||
Stdlib.print_endline "--";*)
|
Stdlib.print_endline "--" ;;
|
||||||
ignore (Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity) ;;
|
|
||||||
|
|
||||||
(* ------------------------------------------------------------*)
|
(* ------------------------------------------------------------*)
|
||||||
(* ------------------------------------------------------------*)
|
(* ------------------------------------------------------------*)
|
||||||
|
@ -1237,7 +961,7 @@ let main r =
|
||||||
|
|
||||||
if is_weighted = 1 then weighted := true;
|
if is_weighted = 1 then weighted := true;
|
||||||
|
|
||||||
Stdlib.print_endline "Enter the mode :\n0 for display\n1 for BFS\n2 for DFS\n3 for Dijkstra\n";
|
Stdlib.print_endline "Enter the mode :\n0 for display\n1 for BFS\n2 for DFS\n3 for (BROKEN) Dijkstra\n";
|
||||||
let choice = Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity in
|
let choice = Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity in
|
||||||
|
|
||||||
open_graph " 1500x1000" ;
|
open_graph " 1500x1000" ;
|
||||||
|
@ -1250,12 +974,14 @@ let main r =
|
||||||
|
|
||||||
let type2 = generate_type2_graph wd ht !density 1 10 in
|
let type2 = generate_type2_graph wd ht !density 1 10 in
|
||||||
|
|
||||||
let dt = 0.3 in
|
let dt = 0.25 in
|
||||||
|
|
||||||
|
me_out_of_this_thing type2;
|
||||||
|
|
||||||
if choice = 0 then begin another_type_of_graph_printing type2 r offset_x offset_y !weighted; close_graph () end
|
if choice = 0 then begin another_type_of_graph_printing type2 r offset_x offset_y !weighted; close_graph () end
|
||||||
else if choice = 1 then begin another_type_of_dfs type2 r offset_x offset_y dt ; close_graph () end
|
else if choice = 1 then begin another_type_of_dfs type2 r offset_x offset_y dt ; close_graph () end
|
||||||
else if choice = 2 then begin another_type_of_bfs type2 r offset_x offset_y gwd ght dt ; close_graph () end
|
else if choice = 2 then begin another_type_of_bfs type2 r offset_x offset_y gwd ght dt ; close_graph () end
|
||||||
else if choice = 3 then begin me_out_of_this_thing type2 r offset_x offset_y dt ; close_graph () end
|
else if choice = 3 then begin () end
|
||||||
else failwith "Error : invalid input";
|
else failwith "Error : invalid input";
|
||||||
|
|
||||||
ignore (Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity);;
|
ignore (Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity);;
|
||||||
|
|
Loading…
Reference in New Issue