@@ -229,7 +229,7 @@ def __direktConnectWorker(self, targetIp:str):
229229 self .__setzeNetzSocket (sock , 0 )
230230 return
231231 sock .close ()
232- self .__zeigeNetzStatusDialog ("Handshake fehlgeschlagen" )
232+ self .__zeigeNetzStatusDialog ("Hadnshake fehlgeschlagen" )
233233
234234 def __waehleSingleplayer (self ):
235235 '''
@@ -267,7 +267,6 @@ def __starteMultiplayer(self):
267267 Erg.: -
268268 '''
269269 self .__netzAktiv = True
270- print ("Netzwerkstart auf Host:" , socket .gethostname (), "IP:" , self .__holeLokaleIp ())
271270 self .__zeigeNetzStatusDialog ("Warte auf Verbindung" )
272271 if self .__netzListenerThread == None or not (self .__netzListenerThread .is_alive ()):
273272 self .__netzListenerThread = threading .Thread (target = self .__listenerWorker , daemon = True )
@@ -297,16 +296,13 @@ def __listenerWorker(self):
297296 listener .setsockopt (socket .SOL_SOCKET , socket .SO_REUSEADDR , 1 )
298297 listener .bind (("0.0.0.0" , self .__netzPort ))
299298 listener .listen (3 )
300- print ("Listener aktiv auf Port" , self .__netzPort )
301299 while self .__netzAktiv and not (self .__netzVerbundenEvent .is_set ()):
302300 conn , _addr = listener .accept ()
303- print ("Eingehende Verbindung von" , _addr )
304301 raw = conn .recv (2048 )
305302 if len (raw ) == 0 :
306303 conn .close ()
307304 continue
308305 msgText = raw .decode ("utf-8" ).strip ()
309- print ("Empfangen:" , msgText )
310306 msgParts = msgText .split (";" )
311307 if len (msgParts ) < 2 or msgParts [0 ] != "ASK" :
312308 conn .close ()
@@ -316,7 +312,6 @@ def __listenerWorker(self):
316312 conn .close ()
317313 continue
318314 conn .sendall (("OK;" + self .__spielerName + "\n " ).encode ("utf-8" ))
319- print ("Antwort gesendet: OK;" + self .__spielerName )
320315 self .__setzeNetzSocket (conn , 1 )
321316 return
322317
@@ -337,7 +332,6 @@ def __setzeNetzSocket(self, sock:socket.socket, localTeam:int):
337332 else :
338333 self .setRotation (0 )
339334 self .__netzVerbundenEvent .set ()
340- print ("Verbindung hergestellt. Eigenes Team:" , localTeam )
341335 if self .__modusDialog != None :
342336 self .__modusDialog .hideSurface ()
343337 if self .__nameDialog != None :
@@ -734,7 +728,6 @@ def __generateImage(self) -> None:
734728 if len (self .__startDialogGruppe .sprites ()) != 0 :
735729 self .__startDialogGruppe .draw (self .image )
736730 if self .__resignDialog .getIfShown ():
737- print ("true" )
738731 self .__DialogGroup .draw (self .image )
739732 for PromoteData in self .__PawnPromotes :
740733 if PromoteData ["Dialog" ].getIfShown ():
@@ -1013,6 +1006,32 @@ def __doPromote(self, Team0Figure, Team1Figure, promotionName:str):
10131006 self .__PawnPromotes .pop (- 1 )
10141007 if self .__netzAktiv and not (self .__wendeRemoteZugAn ):
10151008 self .__sendeNetzMessage (f"PROMO;{ promoteField .getLabel ()} ;{ promotionName } " )
1009+ self .__beendeZugnachFigurwahl ()
1010+
1011+ def __beendeZugnachFigurwahl (self ):
1012+ '''
1013+ Vor.: Der aktuelle Zug ist abgeschlossen und es sind keine Auswahle mehr offen.
1014+ Eff.: Zugzaehler und aktives Team werden gewechselt, Eventmodus wird gesetzt und Matt/Remis werden geprueft.
1015+ Erg.: -
1016+ '''
1017+ self .__turnNumber += 1
1018+ self .__switchToOtherPlayer ()
1019+ self .__eventMode = "chooseFigure"
1020+ self .__clearAllFieldHighlights ()
1021+ matedTeams = self .checkIfMate ()
1022+ if matedTeams != [- 1 ]:
1023+ for field in self .__fields .values ():
1024+ if type (field ) != Feld :
1025+ continue
1026+ field .addFieldHighlight ("GreenOutlineBox" )
1027+ field .addFieldHighlight ("SmallGreenMiddleCircle" )
1028+ print ("MATT: " , matedTeams )
1029+ elif not (self .checkIfTeamCanMove (self .__onTurnTeam )):
1030+ for field in self .__fields .values ():
1031+ if type (field ) != Feld :
1032+ continue
1033+ field .addFieldHighlight ("GreenOutlineBox" )
1034+ print ("Remis durch keine Zugmöglichkeit mehr!" )
10161035
10171036 def __finishTurn (self ):
10181037 '''
@@ -1053,24 +1072,11 @@ def __finishTurn(self):
10531072 PromoteInfos ["Label" ] = field .getLabel ()
10541073 self .__PawnPromotes .append (PromoteInfos )
10551074 self .__generateImage ()
1056- self .__turnNumber += 1
1057- self .__switchToOtherPlayer ()
1058- self .__eventMode = "chooseFigure"
1059- self .__clearAllFieldHighlights ()
1060- matedTeams = self .checkIfMate ()
1061- if matedTeams != [- 1 ]:
1062- for field in self .__fields .values ():
1063- if type (field ) != Feld :
1064- continue
1065- field .addFieldHighlight ("GreenOutlineBox" )
1066- field .addFieldHighlight ("SmallGreenMiddleCircle" )
1067- print ("MATT: " , matedTeams )
1068- elif not (self .checkIfTeamCanMove (self .__onTurnTeam )):
1069- for field in self .__fields .values ():
1070- if type (field ) != Feld :
1071- continue
1072- field .addFieldHighlight ("GreenOutlineBox" )
1073- print ("Remis, durch keine Zugmöglichkeit mehr!" )
1075+ # Solange eine Promotion aussteht, bleibt der Zug beim aktuellen Spieler.
1076+ if len (self .__PawnPromotes ) != 0 :
1077+ self .__eventMode = "chooseFigure"
1078+ return
1079+ self .__beendeZugnachFigurwahl ()
10741080
10751081 def checkIfTeamCanMove (self , team :int ):
10761082 '''
0 commit comments