i jetzt ein Spiel für Linux-basierte Systeme zu schaffen, ich versuche, in denen es drei Prozesse:ein „Spiel“ mit 2 Spielern und Schiedsrichter (Prozesse) mit C in Linux-basierten System Erstellen
- Schiedsrichter - Hauptprozess
- Blau Player - Erstes Kind Prozess
- Red Player - Zweites Kind Prozess
natürlich sind die beiden untergeordneten Prozesse erstellt werden mit der fork()
Funktion.
Jetzt ist alles erstellt, ich verwende Shared Memory zum Speichern der Platine und einige weitere Variablen, die die drei Prozesse gemeinsam sind.
Mein Problem ist, wenn ich darüber nachdenke, wie ich das rundenbasierte Spiel implementieren werde - ich habe eine gemeinsame boolesche Variable erstellt, die anzeigt, ob das Spiel noch läuft oder beendet ist und wer entscheidet, wer dran ist es.
Jetzt betreten wir den freigegebenen Teil, ich habe die beiden Kindprozesse pausiert und ein Signal an den ersten Kindprozess gesendet um ihn "aufzuwecken", aber von jetzt an wie halte ich alle drei Prozesse zusammen und synchronisiere (Der Schiedsrichter weckt die ersten Prozesse, er beendet den Zug und pausiert, als Schiedsrichter weckt den zweiten und so weiter ...)
Ich denke, ich muss diesen Teil in einer Art von while(game_finished == FALSE)
Schleife halten, aber von dort ich ' Ich stecke fest.
Wie implementiere ich das Spiel so, wie ich es gerade erklärt habe? Vielen Dank.
Müssen Sie fork?Das Einfädeln jedes Spielers scheint einfacher zu sein, so dass der Schiedsrichter sie aufwecken kann. – xvan