Issue #7  e #8: criei a função do minmax e a função de avaliar, só temos que pensar, porque eu nao sei exatamente o que fazer com elas e como fazer...
#7: minmax lerdo
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
#Issue #7 e Issue #26 corrigindo comentario
Issue #26, fazendo algumas alteraçoes na classe board que vão facilitar a busca dos movimentos, consertando pequenos erros no optimized_possible_moves da classe board, e criando o optimized_possible moves da classe knight (verificar), funcao do board valid(position) foi alterada para is_valid_position(position) apenas por questao de deixar mais obvio o que a funcao faz
fazendo algumas mudancas, porque nos testes que fiz a velocidade so de pegar o cavalo, tava quase a mesma de pegar de todas as peças, comparando paralelizado e nao paralelizado, pqp
#26: snap element diminui o processamento de interface enquanto a IA pensa e refatoracao de possible_moves separa ataque de movimento, para permitir um pruning melhor
#26: restringindo movimento bispo, torre e rainha
#26: melhorando verificacao de movimento de cada peca para considerar o rei
#26: funcao separada para movimentos de ataque
#26: corrigindo movimento do rei
#27: criando board interface e refatorando board e testes para permitir a criação de boards alternativos
#27: 0x88 funcionando
#27: refatoracao move
#27: python aumentado
#27: python fallback
#27: fallback completo
#27: zobrist hash
#27: contagem de peças
#31 jit draw