PHP CLI - Benutzereingaben abrufen, während noch im Hintergrund gearbeitet wird

Ich arbeite an einem Spiel, das in PHP geschrieben ist und auf einer Konsole läuft. Denken Sie an alte MUDs und andere textbasierte Spiele, sogar an ASCII-Kunst!

Was ich versuche, ist, dass Dinge passieren und gleichzeitig Benutzereingaben akzeptiert werden.

Nehmen wir zum Beispiel an, es ist ein Spiel für zwei Spieler und Spieler 1 wartet darauf, dass Spieler 2 einen Zug ausführt. Dies geschieht einfach durch Abhören einer Nachricht.

Aber was ist, wenn Spieler 1 einige Optionen ändern möchte? Was ist, wenn sie Details zu Aspekten des Spielzustands anzeigen möchten? Was ist mit dem Gegentor? Es gibt viele Dinge, die ein Spieler tun möchte, während er darauf wartet, dass sein Gegner einen Zug macht.

Leider ist das Beste, was ich derzeit habe, die Tatsache, dass Strg + C das Programm vollständig beendet. Der andere Spieler bleibt hängen, bis die Verbindung getrennt wird. Oh, und das Spiel ist komplett verloren.

Ich erhalte Benutzereingaben mitfgets(STDIN). Dies blockiert jedoch die Ausführung, bis Eingaben empfangen wurden (was normalerweise eine gute Sache ist).

Kann ein solches Konsolenprogramm überhaupt gleichzeitig Ein- und Ausgabe verarbeiten? Oder sollte ich mir nur eine andere Oberfläche ansehen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage