Я пытаюсь написать игру в шахматы в ocaml. В моем коде я определил типы, создал класс для хранения массива (кусок, цвет, местоположение) длиной 32 для каждого элемента. Теперь я хочу распечатать мой массив в виде строки. Я создал два метода: один для создания шахматной доски и наложения на нее фигур в виде струн, а другой для ее распечатки. Тем не менее, это дает мне ошибку как
Error: This expression has type string list array array -> unit
but an expression was expected of type
('a -> 'b, unit, string) format =
('a -> 'b, unit, string, string, string, string)
CamlinternalFormatBasics.format6
Я чувствую себя действительно застрявшим, потому что я пытался сделать разные методы, такие как, превращение его в список строк или превращение в массив строк, но это тоже не сработало. Как я могу распечатать эту матрицу массива?
method init =
let b = Array.make_matrix 8 8 "_"
for i = 0 to 7 do b.(i).(1) <- ["P"] done;
for i = 0 to 7 do b.(i).(6) <- ["p"] done;
for i = 0 to 7 do b.(i).(2) <- ["."; "."; "."; "."; "."; "."; "."; "."] done;
for i = 0 to 7 do b.(i).(3) <- ["."; "."; "."; "."; "."; "."; "."; "."] done;
for i = 0 to 7 do b.(i).(4) <- ["."; "."; "."; "."; "."; "."; "."; "."] done;
for i = 0 to 7 do b.(i).(5) <- ["."; "."; "."; "."; "."; "."; "."; "."] done;
for i = 0 to 7 do b.(i).(0) <- ["R"; "N"; "B"; "Q"; "K"; "B"; "N"; "R"] done;
for i = 0 to 7 do b.(i).(7) <- ["r"; "n"; "b"; "q"; "k"; "b"; "n"; "r"] done;
method print = Printf.sprintf self#init board
end;;
Большое спасибо за любую помощь заранее.