Esempio n. 1
0
    def mueveHumano(self, desde, hasta, coronacion=None):
        jgSel = self.checkMueveHumano(desde, hasta, coronacion)
        if not jgSel:
            return False

        fen = self.partida.ultPosicion.fen()
        pv = jgSel.movimiento().lower()
        if self.is_opening:
            op_pv = self.liPVopening[self.posOpening]
            if pv != op_pv:
                if self.must_win:
                    QTUtil2.mensajeTemporal(self.pantalla, _("Wrong move"), 2)
                    self.procesarAccion(k_reiniciar)
                else:
                    QTUtil2.mensError(
                        self.pantalla,
                        "%s\n%s" % (_("Wrong move"), _("Right move: %s") %
                                    Partida.pv_san(fen, op_pv)))
                    self.sigueHumano()
                return False
            self.posOpening += 1
            if self.posOpening == len(self.liPVopening):
                self.is_opening = False

        self.movimientosPiezas(jgSel.liMovs)

        self.partida.ultPosicion = jgSel.posicion
        self.masJugada(jgSel, True)
        self.error = ""

        self.siguienteJugada()
        return True
Esempio n. 2
0
    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.items():
            if donePV == pv.lower():
                ok = True
                mas = stylePV
            else:
                mas = ""
            san = Partida.pv_san(self.alm.fen, pv)
            mens += '<tr%s><td align="center">%s</td><td align="right">%d</td></tr>' % (
                mas, san, points)
            if points > mx:
                mx = points
        if not ok:
            san = Partida.pv_san(self.alm.fen, donePV)
            mens += '<tr%s><td align="center">%s</td><td align="right">%d</td></tr>' % (
                stylePV, san, 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)