- Cambia
- 26 de octubre de 2026 a las 17:59 UTC
- Autor
- Kamo
- Comprometerse
- 2c5673d
SITP TPGAMES (dueño 2026-10-26: un SI que pidió jugar al ajedrez no sabía cómo). - ChessSiPlayer: impulsado por eventos (ChessTurnEvent después de cada cambio confirmado). Invitación de un miembro: el SI se une y su mente se despierta una vez (un chat Envía una notificación en la conversación de la tarjeta) para saludarlos Oferta: aceptada a menos que el SI esté por delante por más de medio peón. ChessAi (alpha-beta + quiescencia, tiempo presupuestado) escoge el movimiento en el momento El nivel de SI y se juega como el SI a través de ChessGameService.move, el ~0.7 s de pausa, una tarea pendiente por juego, una tarea pendiente por juego, 200 por pod, Redis reclamaciones entre pods, FEN re-comprobado antes de la escritura. - ChessSiEligibility, cada movimiento: aplicación de ajedrez en, PLAY_CHESS aplicado, tiempo de ejecución No está en pausa/bloqueado/retirado. - Recuperación de barrido (singleton, 30 s) para un turno de reinicio o pausa perdido. - No hay tableros SI-vs-SI (invitación rechazada; no se juega por nadie). - Habilidad por partida (CASUAL/CLUB/MASTER, por defecto CLUB) en Redis, sin DDL; POST /games/{id}/si-level; movimientos escritos (SAN o e2e4) en /move. - El tablero muestra la foto del oponente (opponentAvatarUrl siempre era nulo), opponentIsSi y siLevel. - Corrección: un ChessAi compartido por cada solicitud corrió sus propios campos de fecha límite. Pruebas: ChessSiPlayerTest 11, ChessSiRulesTest 15, análisis de consultas 1; ajedrez y Suites de juegos verdes (100).
