tic-tac-toe サーバー (telnet 経由) の簡単な実装を書きます。タスク - プレーヤーはサーバーに接続し、START を送信した後、サーバーは START を入力したパートナーを探し、ゲームが開始されます。コードの一部:
let handle_income () =
let con = Lwt_unix.accept sock in
con >>= fun (cli, addr) ->
let player = Lwt.return {state = Sleeping; descriptor = Lwt.return cli} in
send_to_client player "Welcome to the server. To start game type in START and press Enter";
player;;
let rec make_ready player =
player >>= fun {state; descriptor} ->
send_to_client player "Waiting for start command";
let answer = read_from_client player in
answer >>= fun str ->
match str with
|"Start" ->
let ready_client = Lwt.return { state = Ready; descriptor = descriptor} in
ready_client
| _ ->
send_to_client player "Unknown command. try again";
make_ready player;;
私は Ocaml にまったく慣れていません (特に Lwt)。では、プレイヤーの START を他のプレイヤーを探すようにするにはどうすればよいか、アドバイスをいただけないでしょうか。プレーヤーの状態を常にチェックする反復、2 番目のプレーヤーが START と入力するのを待つ高レベル関数 (それが可能かどうかはわかりません)、Lwt ウェイカー、Lwt ブロードキャスト、別の a' Lwt の作成 (Sleep until) を含むリストを使用する必要があります。 Lwt.tの選手が2人か何か?それを最も賢い方法で実装する方法がわかりません。ありがとうございます。