Explicação
EPD significa Extended Position Description, ou descrição estendida de posição. Uma linha EPD começa com quatro campos que descrevem as peças, o lado a jogar, os , que indicam se cada lado ainda pode realizar o lance especial que envolve o rei e uma torre, e a . Em seguida, ela pode incluir operações EPD para associar instruções ou informações adicionais à posição.
Cada operação contém um opcode, isto é, um nome curto que identifica seu significado, seguido de zero ou mais operandos, que são os valores da operação. Ela sempre termina com ponto e vírgula. Em id "test-001";, id é o opcode, e a cadeia entre aspas é o operando. Várias operações são separadas por um espaço.
Os opcodes padronizados abrangem tarefas como identificar a posição, propor os melhores lances, marcar lances que devem ser evitados, armazenar uma variante prevista ou acrescentar comentários. Um programa que não reconhece um opcode deve ignorar essa operação, em vez de rejeitar a linha inteira. Essa extensibilidade permite usar a mesma descrição básica de posição em conjuntos de testes, análises e comunicação entre programas.
Uso e contexto
EPD é usado principalmente em coleções de posições, em testes de , que são programas que analisam posições, e em tarefas nas quais cada posição precisa de dados estruturados além do estado do tabuleiro.
Confusões frequentes
Operação e campo de posição
Os quatro primeiros campos descrevem o estado necessário para jogar a partir da posição. As operações posteriores acrescentam rótulos, respostas ou instruções.
Opcode e operando
O opcode indica que tipo de dado vem a seguir. O operando fornece o valor específico desse dado.
Fontes
- 1.Standard: Portable Game Notation Specification and Implementation Guide, Steven J. Edwards / ChessGML
- 2.Core, python-chess 1.11.2 documentation
