public string toAlgebra() { StringBuilder sb = new StringBuilder(); tipoPeca pecaPromo = tipoPeca.NENHUMA; if (!((tipo == tipoMovimento.MROQUEK) || (tipo == tipoMovimento.MROQUEQ))) { sb.Append(BlackMagic.bbToString(bbFrom)); sb.Append(BlackMagic.bbToString(bbTo)); if (tipo > tipoMovimento.MPROMOCAP) { pecaPromo = (tipoPeca)((int)tipo - (int)tipoMovimento.MPROMOCAP); } else if (tipo > tipoMovimento.MPROMO) { pecaPromo = (tipoPeca)((int)tipo - (int)tipoMovimento.MPROMO); } if (pecaPromo != tipoPeca.NENHUMA) { sb.Append(bbConstants.sPecas[(int)pecaPromo]); } } else { if (tipo == tipoMovimento.MROQUEK) { if ((int)peca % 2 == 0) { sb.Append("e1g1"); } else { sb.Append("e8g8"); } } else { if ((int)peca % 2 == 0) { sb.Append("e1c1"); } else { sb.Append("e8c8"); } } } return(sb.ToString()); }