def mueveHumano(self, desde, hasta, coronacion=""): p0 = LCEngine.a1Pos(desde) p1 = LCEngine.a1Pos(hasta) if p1 in LCEngine.dicN[p0]: self.moves += 1 self.movesParcial += 1 self.ponNumMoves() if p1 not in self.camino: return False self.cpActivo.casillas[desde] = None self.cpActivo.casillas[hasta] = "N" if self.siBlancas else "n" self.tablero.ponPosicion(self.cpActivo) self.tablero.activaColor(self.siBlancas) self.posTemporal = p1 if p1 == self.camino[self.posActual + 1]: self.avanza() return True return True return False
def aura(self): lista = [] def add(lipos): for pos in lipos: lista.append(LCEngine.posA1(pos)) def liBR(npos, fi, ci): fil, col = LCEngine.posFC(npos) liM = [] ft = fil + fi ct = col + ci while True: if ft < 0 or ft > 7 or ct < 0 or ct > 7: break t = LCEngine.FCpos(ft, ct) liM.append(t) pz = self.casillas[LCEngine.posA1(t)] if pz: break ft += fi ct += ci add(liM) pzs = "KQRBNP" if self.siBlancas else "kqrbnp" for i in range(8): for j in range(8): a1 = chr(i + 97) + chr(j + 49) pz = self.casillas[a1] if pz and pz in pzs: pz = pz.upper() npos = LCEngine.a1Pos(a1) if pz == "K": add(LCEngine.liK(npos)) elif pz == "Q": for f_i, c_i in ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (-1, 0), (0, 1), (0, -1)): liBR(npos, f_i, c_i) elif pz == "R": for f_i, c_i in ((1, 0), (-1, 0), (0, 1), (0, -1)): liBR(npos, f_i, c_i) elif pz == "B": for f_i, c_i in ((1, 1), (1, -1), (-1, 1), (-1, -1)): liBR(npos, f_i, c_i) elif pz == "N": add(LCEngine.liN(npos)) elif pz == "P": lim, lix = LCEngine.liP(npos, self.siBlancas) add(lix) return lista