私はPHPで書かれた、コンソールで実行されるゲームに取り組んでいます。古いMUDやその他のテキストベースのゲーム、さらにはASCIIアートを思い出してください。
とにかく、私がやろうとしているのは、ユーザー入力を受け入れながら何かが起こっていることです。
たとえば、2人用ゲームで、プレーヤー1がプレーヤー2の動きを待っているとします。これは、メッセージを聞くだけで簡単に実行できます。
しかし、プレーヤー1がいくつかのオプションを変更したい場合はどうなりますか?ゲームの状態の詳細を表示したい場合はどうなりますか?ゲームを譲歩するのはどうですか?対戦相手が動くのを待っている間にプレイヤーがやりたいことがたくさんあります。
残念ながら、私が今持っている最高のものは、Ctrl+Cがプログラムを完全に強制終了するという事実です。その後、接続が切断されるまで、他のプレーヤーはぶら下がったままになります。ああ、そしてゲームは完全に失われました。
でユーザー入力を取得しますfgets(STDIN)
。ただし、これは入力が受信されるまで実行をブロックします(これは通常は良いことです)。
このようなコンソールプログラムで入力と出力を同時に処理することも可能ですか?それとも、他のインターフェイスを見る必要がありますか?