txlyre 1 day ago
parent
commit
84bc5b66b8
2 changed files with 22 additions and 3 deletions
  1. 12 3
      chess0.py
  2. 10 0
      commands.py

+ 12 - 3
chess0.py

@@ -51,8 +51,6 @@ class ChessSession:
         self.board.push(chess.Move.null())
         self.move_ts = time.time()
 
-        self.check_game_over()
-
     async def end(self):
         await self.engine.quit()
 
@@ -107,7 +105,11 @@ class ChessManager:
         session.board.pop()
 
     async def skip(self, id):
-        await self.move(id)
+        session = self.sessions.get(id)
+        if not session:
+            raise KeyError(id)
+
+        session.skip()
 
     def svg(self, id):
         session = self.sessions.get(id)
@@ -122,3 +124,10 @@ class ChessManager:
             raise KeyError(id)
 
         return str(session.board)
+
+    def moves(self, id):
+        session = self.sessions.get(id)
+        if not session:
+            raise KeyError(id)
+
+        return " ".join(map(str, session.board.move_stack))

+ 10 - 0
commands.py

@@ -744,6 +744,15 @@ async def chess_board_handler(chess, id):
     return [board]
 
 
+async def chess_moves_handler(chess, id):
+    try:
+        moves = chess.moves(id)
+    except KeyError:
+        return ["Нет активной игры."]
+
+    return [moves]
+
+
 CHESS_COMMANDS = {
     "start": (chess_start_handler, "Начать новую игру", 0),
     "end": (chess_stop_handler, "Завершить игру", 0),
@@ -752,6 +761,7 @@ CHESS_COMMANDS = {
     "skip": (chess_skip_handler, "Пропустить ход", 0),
     "pass": (chess_pass_handler, "Сделать ход вместо вас", 0),
     "board": (chess_board_handler, "Показать состояние доски", 0),
+    "moves": (chess_moves_handler, "Показать историю ходов (первый ход - игрока)", 0),
 }