I'm not able to isolate Array in OCaml from modifying
这是完整的代码。我会尝试展示一些作品。我正在编写一个通过 telnet 工作的井字游戏服务器。这是游戏板的表示
1 2 3 4 | let empty_board = [| [|EMPTY; EMPTY; EMPTY|]; [|EMPTY; EMPTY; EMPTY|]; [|EMPTY; EMPTY; EMPTY|]|] |
1 2 3 4 5 6 | let prepare_game_process pair_of_players= pair_of_players >>= fun (player1, player2) -> send_to_client player1"You play for X"; send_to_client player2"You play for O"; let new_board = Array.copy empty_board in game_loop player1 player2 new_board |
但是每次新游戏开始时,game_loop 中的所有变化都会反映到原来的 empty_board:
1 2 3 | let make_move x y board token= board.(y).(x) <- token; board |
我查看代码十亿次,但根本看不出原因。
您只是在复制外部数组,而不是单个行数组。