Commits

afiskon committed b549ff4

not_visited_cells_list function refactoring

Comments (0)

Files changed (1)

 (* Генерируем список с координатами всех ячеек
    в лабиринте заданного размера *)
 let not_visited_cells_list width height =
-  let max_x = width - 1
-  and max_y = height - 1 in
-    let rec not_visited_cells_list' x y acc =
-      if x == 0
-      then if y == 0
-           then (0,0) :: acc
-           else not_visited_cells_list' max_x (y-1) ( (0,y) :: acc )
-      else not_visited_cells_list' (x-1) y ( (x,y) :: acc )
-    in
-      not_visited_cells_list' max_x max_y []
+  let lst = ref [] in
+  for y = height-1 downto 0 do
+    for x = width-1 downto 0 do
+      lst := (x,y) :: !lst
+    done
+  done;
+  !lst
 
 (* Верно ли, что заданная ячейка не соединена
    ни с одной другой? *)