criando uma funcao no board chamada optimized_possible_moves que vai criar 2 threads para cada peça. Uma que vai pegar os possíveis movimentos que matam alguma peça inimiga, e uma que vai pegar os possiveis movimentos que não matam nenhuma peça inimiga, eu passo pra cada uma dessas funcoes da peça uma Queue que é onde a funcao possible moves de cada peça deve armazenar o seu resultado, no final, espero para que cada thread conclua sua execucao, e depois busco na queue o resultado de cada thread
criando uma funcao no board chamada optimized_possible_moves que vai criar 2 threads para cada peça. Uma que vai pegar os possíveis movimentos que matam alguma peça inimiga, e uma que vai pegar os possiveis movimentos que não matam nenhuma peça inimiga, eu passo pra cada uma dessas funcoes da peça uma Queue que é onde a funcao possible moves de cada peça deve armazenar o seu resultado, no final, espero para que cada thread conclua sua execucao, e depois busco na queue o resultado de cada thread

GRUPO-ES2-GJLRT/XADREZ_ES2,GRUPO-ES2-GJLRT/XADREZ_ES2,GRUPO-ES2-GJLRT/XADREZ_ES2