def mueveHumano(self, desde, hasta, coronacion=None): jgSel = self.checkMueveHumano(desde, hasta, coronacion) if not jgSel: return False if self.is_guided: pvSel = jgSel.movimiento().lower() pvObj = self.liPV[self.posPV] li = pvObj.split("-") if li[0] != pvSel: if pvSel in li: pgn = Partida.pv_pgn(jgSel.posicionBase.fen(), pvObj) self.show_mens( _("You have selected one correct move, but the line use %s" ) % pgn) self.ponFlechaSC(pvObj[:2], pvObj[2:4]) self.ayuda(False) else: self.show_error(_("Wrong move")) self.warnings += 1 self.ponWarnings() self.sigueHumano() return False self.posPV += 1 else: fen = self.partida.ultPosicion.fen() pv = jgSel.movimiento().lower() b_wdl, b_dtz = self.t4.wdl_dtz(fen) m_wdl, m_dtz = self.t4.wd_move(fen, pv) if b_wdl != m_wdl: self.show_error(_("Wrong move")) self.warnings += 1 self.ponWarnings() self.ponPosicion(self.partida.ultPosicion) self.sigueHumano() return False if b_wdl == 2: numjug = self.partida.ultPosicion.jugadas if b_dtz % 2 == 1: b_dtz += 1 numjug += b_dtz / 2 if numjug >= 50: mens = "%s\n%s" % (_("Wrong move"), _("Draw according to the 50 move rule")) self.show_error(mens) QTUtil2.mensajeTemporal(self.pantalla, mens, 2) self.warnings += 1 self.ponWarnings() self.ponPosicion(self.partida.ultPosicion) self.sigueHumano() return False self.movimientosPiezas(jgSel.liMovs) self.masJugada(jgSel, True) self.error = "" self.siguienteJugada() return True
def mueveHumano(self, desde, hasta, coronacion=None): jgSel = self.checkMueveHumano(desde, hasta, coronacion) if not jgSel: return False pvSel = jgSel.movimiento().lower() pvObj = self.liPV[self.posPV] li = pvObj.split("-") if li[0] != pvSel: if pvSel in li: pgn = Partida.pv_pgn(jgSel.posicionBase.fen(), pvObj) mens = _( "You have selected one correct move, but the line use %s" ) % pgn QTUtil2.mensajeTemporal(self.pantalla, mens, 4, posicion="tb", background="#C3D6E8") self.ponFlechaSC(pvObj[:2], pvObj[2:4]) self.ayuda(False) else: pgn = Partida.pv_pgn(jgSel.posicionBase.fen(), pvSel) mens = _("Wrong move") QTUtil2.mensajeTemporal(self.pantalla, mens, 4, background="#FF9B00", posicion="tb") self.warnings += 1 self.ponWarnings() self.sigueHumano() return False self.posPV += 1 self.movimientosPiezas(jgSel.liMovs) self.masJugada(jgSel, True) self.error = "" self.siguienteJugada() return True
def hechaJugada(self, jg): self.tablero.desactivaTodas() self.jg = jg self.ponToolbar(self.seguir, self.analizar) donePV = jg.movimiento().lower() dicResults = self.alm.dicResults mens = "<h2>%s</h2><br>" % self.alm.name mens += '<table><tr><th>%s</th><th>%s</th></tr>' % (_("Move"), _("Points")) mx = 0 ok = False stylePV = ' style="color:red;"' for pv, points in dicResults.iteritems(): if donePV == pv.lower(): ok = True mas = stylePV else: mas = "" pgn = Partida.pv_pgn(self.alm.fen, pv) mens += '<tr%s><td align="center">%s</td><td align="right">%d</td></tr>' % ( mas, pgn, points) if points > mx: mx = points if not ok: pgn = Partida.pv_pgn(self.alm.fen, donePV) mens += '<tr%s><td align="center">%s</td><td align="right">%d</td></tr>' % ( stylePV, pgn, 0) mens += "</table>" self.alm.donePV = donePV self.alm.puntos = dicResults.get(donePV, 0) self.alm.total = mx mens += "<br><h2>%s: %d/%d</h2>" % (_("Points"), self.alm.puntos, self.alm.total) self.lbJuego.ponTexto(mens) self.workmap.winAim(donePV)
def hechaJugada(self, jg): self.tablero.desactivaTodas() self.jg = jg self.ponToolbar(self.seguir, self.analizar) donePV = jg.movimiento().lower() dicResults = self.alm.dicResults mens = "<h2>%s</h2><br>" % self.alm.name mens += '<table><tr><th>%s</th><th>%s</th></tr>'%(_("Move"), _("Points")) mx = 0 ok = False stylePV = ' style="color:red;"' for pv, points in dicResults.iteritems(): if donePV == pv.lower(): ok = True mas = stylePV else: mas = "" pgn = Partida.pv_pgn(self.alm.fen,pv) mens += '<tr%s><td align="center">%s</td><td align="right">%d</td></tr>'%(mas,pgn,points) if points > mx: mx = points if not ok: pgn = Partida.pv_pgn(self.alm.fen,donePV) mens += '<tr%s><td align="center">%s</td><td align="right">%d</td></tr>'%(stylePV,pgn,0) mens += "</table>" self.alm.donePV = donePV self.alm.puntos = dicResults.get(donePV,0) self.alm.total = mx mens += "<br><h2>%s: %d/%d</h2>"%(_("Points"), self.alm.puntos, self.alm.total) self.lbJuego.ponTexto(mens) self.workmap.winAim(donePV)
def gridBotonDerecho(self, grid, fila, columna, modificadores): alm = self.liMoves[fila]["alm"] if not alm or len(alm.LIALMS) < 2: return menu = QTVarios.LCMenu(self) rondo = QTVarios.rondoPuntos() for ralm in alm.LIALMS: menu.opcion(ralm, Partida.pv_pgn(None, ralm.PV), rondo.otro()) menu.separador() resp = menu.lanza() if resp: self.liMoves[fila]["pv"] = resp.PV self.cambiaInfoMove()
def next_task(self): state, task = self.get_task() if state == PLAYING: opening, win = task pgn = Partida.pv_pgn(None, opening.pv) litxt = [_("To play a complete game.")] if opening.label: litxt.append(_("With the opening: %s.") % opening.label) litxt.append(pgn) if win: litxt.append(_("You must win to pass this step.")) else: litxt.append(_("You don't need to win to pass this step.")) return "<br>".join(litxt), "#597272" elif state == ENDING: return _("You must solve an endgame puzzle"), "Brown" else: return _("You must solve tactics puzzles to advance."), "#807C6E"
def mueveHumano(self, desde, hasta, coronacion=None): jgSel = self.checkMueveHumano(desde, hasta, coronacion) if not jgSel: return False if self.is_guided: pvSel = jgSel.movimiento().lower() pvObj = self.liPV[self.posPV] li = pvObj.split("-") if li[0] != pvSel: if pvSel in li: pgn = Partida.pv_pgn(jgSel.posicionBase.fen(), pvObj) QTUtil2.mensajeTemporal( self.pantalla, _("You have selected one correct move, but the line use %s" ) % pgn, 4) else: QTUtil2.mensajeTemporal(self.pantalla, _("Wrong move"), 2) self.warnings += 1 self.ponWarnings() self.sigueHumano() return False self.posPV += 1 else: fen = self.partida.ultPosicion.fen() pv = jgSel.movimiento().lower() b_wdl, b_dtz = self.t4.wdl_dtz(fen) m_wdl, m_dtz = self.t4.wd_move(fen, pv) if b_wdl != m_wdl: QTUtil2.mensajeTemporal(self.pantalla, _("Wrong move"), 2) self.warnings += 1 self.ponWarnings() self.ponPosicion(self.partida.ultPosicion) self.sigueHumano() return False self.movimientosPiezas(jgSel.liMovs) self.masJugada(jgSel, True) self.error = "" self.siguienteJugada() return True