txlyre 1 day ago
parent
commit
4765125dc7
2 changed files with 9 additions and 2 deletions
  1. 8 1
      chess0.py
  2. 1 1
      commands.py

+ 8 - 1
chess0.py

@@ -27,7 +27,7 @@ class ChessSession:
 
 
     def check_game_over(self):
     def check_game_over(self):
         if self.board.is_game_over():
         if self.board.is_game_over():
-            raise GameOver(outcome_to_str(self.board.outcome()))
+            raise GameOver(f"{outcome_to_str(self.board.outcome())} {len(self.board.move_stack)}")
 
 
     async def move(self, move=None):
     async def move(self, move=None):
         if move is not None:
         if move is not None:
@@ -139,6 +139,13 @@ class ChessManager:
 
 
         return bool(session.board.move_stack)
         return bool(session.board.move_stack)
 
 
+    def moves_count(self, id):
+        session = self.sessions.get(id)
+        if not session:
+            raise KeyError(id)
+
+        return len(session.board.move_stack)
+
     def moves(self, id, offset=None):
     def moves(self, id, offset=None):
         session = self.sessions.get(id)
         session = self.sessions.get(id)
         if not session:
         if not session:

+ 1 - 1
commands.py

@@ -781,7 +781,7 @@ async def chess_moves_handler(chess, id):
         if not chess.has_moves(id):
         if not chess.has_moves(id):
             moves = "Ходов ещё не сделано."
             moves = "Ходов ещё не сделано."
         else:
         else:
-            moves = f"Последние два хода: {chess.moves(id, 2)}\nВсе ходы (первый ход - игрока): {chess.moves(id)}"
+            moves = f"Последние два хода: {chess.moves(id, 2)}\nВсе ходы (первый ход - игрока) [{chess.moves_count(id)}]: {chess.moves(id)}"
 
 
             if chess.is_check(id):
             if chess.is_check(id):
                 moves = f"Шах!\n{moves}"
                 moves = f"Шах!\n{moves}"