def eligeJugadaRival(self): if self.jugContrario == "su": resp = PantallaBooks.eligeJugadaBooks( self.pantalla, self.listaJugadas, self.partida.ultPosicion.siBlancas) elif self.jugContrario == "mp": resp = self.listaJugadas[0][0], self.listaJugadas[0][ 1], self.listaJugadas[0][2] nmax = self.listaJugadas[0][4] for desde, hasta, coronacion, pgn, peso in self.listaJugadas: if peso > nmax: resp = desde, hasta, coronacion nmax = peso elif self.jugContrario == "au": pos = random.randint(0, len(self.listaJugadas) - 1) resp = self.listaJugadas[pos][0], self.listaJugadas[pos][ 1], self.listaJugadas[pos][2] else: li = [int(x[4] * 100000) for x in self.listaJugadas] t = sum(li) num = random.randint(1, t) pos = 0 t = 0 for n, x in enumerate(li): t += x if num <= t: pos = n break resp = self.listaJugadas[pos][0], self.listaJugadas[pos][ 1], self.listaJugadas[pos][2] return resp
def eligeJugadaRival(self): if self.jugContrario == "su": resp = PantallaBooks.eligeJugadaBooks(self.pantalla, self.listaJugadas, self.partida.ultPosicion.siBlancas) elif self.jugContrario == "mp": resp = self.listaJugadas[0][0], self.listaJugadas[0][1], self.listaJugadas[0][2] nmax = self.listaJugadas[0][4] for desde, hasta, coronacion, pgn, peso in self.listaJugadas: if peso > nmax: resp = desde, hasta, coronacion nmax = peso elif self.jugContrario == "au": pos = random.randint(0, len(self.listaJugadas) - 1) resp = self.listaJugadas[pos][0], self.listaJugadas[pos][1], self.listaJugadas[pos][2] else: li = [int(x[4] * 100000) for x in self.listaJugadas] t = sum(li) num = random.randint(1, t) pos = 0 t = 0 for n, x in enumerate(li): t += x if num <= t: pos = n break resp = self.listaJugadas[pos][0], self.listaJugadas[pos][1], self.listaJugadas[pos][2] return resp
def ayuda(self): if self.siJuegaHumano: self.paraHumano() else: return self.tablero.ponPosicion(self.partida.ultPosicion) main = self.listaJugadas[0][4] saux = False paux = 0 for n, jug in enumerate(self.listaJugadas): opacity = p = jug[4] simain = p == main if not simain: if not saux: paux = p saux = True opacity = 1.0 if p == paux else max(p, 0.25) self.tablero.creaFlechaMulti(jug[0] + jug[1], siMain=simain, opacidad=opacity) resp = PantallaBooks.eligeJugadaBooks(self.pantalla, self.listaJugadas, self.siJugamosConBlancas, siSelectSiempre=False) self.tablero.quitaFlechas() if resp is None: self.sumar_aciertos = False self.sigueHumano() return desde, hasta, coronacion = resp siBien, mens, jg = Jugada.dameJugada(self.partida.ultPosicion, desde, hasta, coronacion) self.movimientos += 1 self.ponRotulo2(self.txtAciertos()) self.movimientosPiezas(jg.liMovs) self.partida.ultPosicion = jg.posicion self.masJugada(jg, True) self.error = "" self.sumar_aciertos = True self.siguienteJugada()
def eligeJugadaBookBase(self, book, bookRR): jugadas = self.partida.ultPosicion.jugadas if self.maxMoveBook: if self.maxMoveBook <= jugadas: return False, None, None, None fen = self.fenUltimo() if bookRR == "su": listaJugadas = book.miraListaJugadas(fen) if listaJugadas: resp = PantallaBooks.eligeJugadaBooks(self.pantalla, listaJugadas, self.partida.ultPosicion.siBlancas) return True, resp[0], resp[1], resp[2] else: pv = book.eligeJugadaTipo(fen, bookRR) if pv: return True, pv[:2], pv[2:4], pv[4:] return False, None, None, None
def mueveHumano(self, desde, hasta, coronacion=None): jg = self.checkMueveHumano(desde, hasta, coronacion) if not jg: return False siEncontrado = False actpeso = 0 for jdesde, jhasta, jcoronacion, jpgn, peso in self.listaJugadas: if desde == jdesde and hasta == jhasta and jg.coronacion == jcoronacion: siEncontrado = True actpeso = peso break if siEncontrado and self.jugJugador: # si el jugador busca elegir el maximo maxpeso = 0.0 for jdesde, jhasta, jcoronacion, jpgn, peso in self.listaJugadas: if peso > maxpeso: maxpeso = peso if actpeso < maxpeso: siEncontrado = False if not siEncontrado: self.tablero.ponPosicion(self.partida.ultPosicion) main = self.listaJugadas[0][4] saux = False paux = 0 for n, jug in enumerate(self.listaJugadas): opacity = p = jug[4] simain = p == main if not simain: if not saux: paux = p saux = True opacity = 1.0 if p == paux else max(p, 0.25) self.tablero.creaFlechaMulti(jug[0] + jug[1], siMain=simain, opacidad=opacity) resp = PantallaBooks.eligeJugadaBooks(self.pantalla, self.listaJugadas, self.siJugamosConBlancas, siSelectSiempre=False) self.tablero.quitaFlechas() if resp is None: self.sumar_aciertos = False self.sigueHumano() return False desde, hasta, coronacion = resp siBien, mens, jg = Jugada.dameJugada(self.partida.ultPosicion, desde, hasta, coronacion) else: if self.sumar_aciertos: self.aciertos += actpeso self.movimientos += 1 self.ponRotulo2(self.txtAciertos()) self.movimientosPiezas(jg.liMovs) self.partida.ultPosicion = jg.posicion self.masJugada(jg, True) self.error = "" self.sumar_aciertos = True self.siguienteJugada() return True
def mueveHumano(self, desde, hasta, coronacion=None): if self.siJuegaHumano: self.paraHumano() else: self.sigueHumano() return False # Peon coronando if not coronacion and self.partida.ultPosicion.siPeonCoronando(desde, hasta): coronacion = self.tablero.peonCoronando(self.partida.ultPosicion.siBlancas) if coronacion is None: self.sigueHumano() return False siBien, mens, jg = Jugada.dameJugada(self.partida.ultPosicion, desde, hasta, coronacion) if not siBien: self.sigueHumano() self.error = mens return False siEncontrado = False actpeso = 0 if coronacion is None: coronacion = "" for jdesde, jhasta, jcoronacion, jpgn, peso in self.listaJugadas: if desde == jdesde and hasta == jhasta and coronacion == jcoronacion: siEncontrado = True actpeso = peso break if siEncontrado and self.jugJugador: # si el jugador busca elegir el maximo maxpeso = 0.0 for jdesde, jhasta, jcoronacion, jpgn, peso in self.listaJugadas: if peso > maxpeso: maxpeso = peso if actpeso < maxpeso: siEncontrado = False if not siEncontrado: self.tablero.ponPosicion(self.partida.ultPosicion) self.tablero.activaColor(self.siJugamosConBlancas) resp = PantallaBooks.eligeJugadaBooks(self.pantalla, self.listaJugadas, self.siJugamosConBlancas) if resp is None: resp = self.listaJugadas[0][:3] desde, hasta, coronacion = resp siBien, mens, jg = Jugada.dameJugada(self.partida.ultPosicion, desde, hasta, coronacion) else: self.aciertos += actpeso self.movimientos += 1 self.ponRotulo2(self.txtAciertos()) self.movimientosPiezas(jg.liMovs) self.partida.ultPosicion = jg.posicion self.masJugada(jg, True) self.error = "" self.siguienteJugada() return True
def mueveHumano(self, desde, hasta, coronacion=None): if self.siJuegaHumano: self.paraHumano() else: self.sigueHumano() return False # Peon coronando if not coronacion and self.partida.ultPosicion.siPeonCoronando( desde, hasta): coronacion = self.tablero.peonCoronando( self.partida.ultPosicion.siBlancas) if coronacion is None: self.sigueHumano() return False siBien, mens, jg = Jugada.dameJugada(self.partida.ultPosicion, desde, hasta, coronacion) if not siBien: self.sigueHumano() self.error = mens return False siEncontrado = False actpeso = 0 if coronacion is None: coronacion = "" for jdesde, jhasta, jcoronacion, jpgn, peso in self.listaJugadas: if desde == jdesde and hasta == jhasta and coronacion == jcoronacion: siEncontrado = True actpeso = peso break if siEncontrado and self.jugJugador: # si el jugador busca elegir el maximo maxpeso = 0.0 for jdesde, jhasta, jcoronacion, jpgn, peso in self.listaJugadas: if peso > maxpeso: maxpeso = peso if actpeso < maxpeso: siEncontrado = False if not siEncontrado: self.tablero.ponPosicion(self.partida.ultPosicion) self.tablero.activaColor(self.siJugamosConBlancas) resp = PantallaBooks.eligeJugadaBooks(self.pantalla, self.listaJugadas, self.siJugamosConBlancas) if resp is None: resp = self.listaJugadas[0][:3] desde, hasta, coronacion = resp siBien, mens, jg = Jugada.dameJugada(self.partida.ultPosicion, desde, hasta, coronacion) else: self.aciertos += actpeso self.movimientos += 1 self.ponRotulo2(self.txtAciertos()) self.movimientosPiezas(jg.liMovs) self.partida.ultPosicion = jg.posicion self.masJugada(jg, True) self.error = "" self.siguienteJugada() return True