Exemplo n.º 1
0
 def tutorChange(self):
     if PantallaTutor.cambioTutor(self, self.configuracion):
         self.procesador.cambiaXTutor()
Exemplo n.º 2
0
    def elegir(self, siPuntos, liApPosibles=None):

        self.rmUsuario, posUsuario = self.mrmTutor.buscaRM(
            self.jg.movimiento())
        if self.rmUsuario is None:
            # Elegimos si la opcion del tutor es mejor que la del usuario
            # Ponemos un mensaje mientras piensa
            me = QTUtil2.mensEspera.inicio(self.pantalla,
                                           _("Analyzing the move...."),
                                           posicion="ad")

            fen = self.jg.posicion.fen()
            mrmUsuario = self.gestorTutor.analiza(fen)
            self.rmUsuario = mrmUsuario.liMultiPV[0]
            self.rmUsuario.cambiaColor(self.jg.posicion)

            me.final()

            if me.teclaPulsada(self.gestor.teclaPanico):
                self.gestor.siTeclaPanico = True
                return False

        # Estadisticas
        if self.salvarCSV:
            self.guardaEstadisticas()

        # Comparamos la puntuacion del usuario con la del tutor
        if not self.mrmTutor.mejorRMQue(self.rmUsuario, self.difpts,
                                        self.difporc):
            return False

        # Creamos la lista de movimientos analizados por el tutor
        self.listaRM = self.hazListaRM(posUsuario)  # rm,nombre

        # Creamos la ventana

        siRival = self.rmRival and " " in self.rmRival.getPV()

        self.liApPosibles = liApPosibles
        siApertura = not (liApPosibles is None)
        if siApertura:
            siRival = False

        self.w = w = PantallaTutor.PantallaTutor(self, self, siRival,
                                                 siApertura, self.siBlancas,
                                                 siPuntos)

        self.cambiadoRM(0)

        self.partidaUsuario = Partida.Partida(self.jg.posicion)
        self.partidaUsuario.append_jg(self.jg)
        self.partidaUsuario.leerPV(self.rmUsuario.getPV())
        self.posUsuario = 0
        self.maxUsuario = len(self.partidaUsuario.liJugadas)
        self.tableroUsuario.ponPosicion(self.jg.posicion)
        w.ponPuntuacionUsuario(self.rmUsuario.texto())

        if siRival:
            self.rmRival.cambiaColor()
            pvBloque = self.rmRival.getPV()
            n = pvBloque.find(" ")
            if n > 0:
                pvBloque = pvBloque[n + 1:].strip()
            else:
                pvBloque = ""

            if pvBloque:
                self.partidaRival = Partida.Partida(self.ultPosicion)
                self.partidaRival.leerPV(pvBloque)
                self.posRival = 0
                self.maxRival = len(self.partidaRival.liJugadas) - 1
                if self.maxRival >= 0:
                    self.tableroRival.ponPosicion(
                        self.partidaRival.liJugadas[0].posicion)
                    self.mueveRival(True)
                    w.ponPuntuacionRival(self.rmRival.texto())

        self.mueveTutor(True)
        self.mueveUsuario(True)

        if w.exec_():
            if w.siElegidaApertura:
                desde = self.partidaAperturas.jugada(0).desde
                hasta = self.partidaAperturas.jugada(0).hasta
                if desde == self.desde and hasta == self.hasta:
                    return False
                self.desde = desde
                self.hasta = hasta
                self.coronacion = ""
            elif w.respLibro:
                self.desde, self.hasta, self.coronacion = w.respLibro
            else:
                rm = self.listaRM[self.posRM][0]
                self.desde = rm.desde
                self.hasta = rm.hasta
                self.coronacion = rm.coronacion
            return True
        return False
Exemplo n.º 3
0
 def tutorChange(self):
     if PantallaTutor.cambioTutor(self, self.configuracion):
         self.procesador.cambiaXTutor()
Exemplo n.º 4
0
    def elegir(self, siPuntos, liApPosibles=None):

        self.rmUsuario, posUsuario = self.mrmTutor.buscaRM(self.move.movimiento())
        if self.rmUsuario is None:
            # Elegimos si la opcion del tutor es mejor que la del usuario
            # Ponemos un mensaje mientras piensa
            me = QTUtil2.mensEspera.inicio(self.main_window, _("Analyzing the move...."), position="ad")

            fen = self.move.position.fen()
            mrmUsuario = self.gestorTutor.analiza(fen)
            if len(mrmUsuario.li_rm) == 0:
                self.rmUsuario = self.mrmTutor.li_rm[0].copia()
                self.rmUsuario.from_sq = self.move.from_sq
                self.rmUsuario.to_sq = self.move.to_sq
                self.rmUsuario.promotion = self.move.promotion
                self.rmUsuario.mate = 0
                self.rmUsuario.puntos = 0
            else:
                self.rmUsuario = mrmUsuario.li_rm[0]
                self.rmUsuario.cambiaColor(self.move.position)

            me.final()

        # Estadisticas
        if self.x_save_csv:
            self.guardaEstadisticas()

        # Comparamos la puntuacion del usuario con la del tutor
        if not self.mrmTutor.mejorRMQue(self.rmUsuario, self.difpts, self.difporc):
            return False

        # Creamos la lista de movimientos analizados por el tutor
        self.list_rm = self.do_lirm(posUsuario)  # rm,name

        # Creamos la ventana

        siRival = self.rm_rival and " " in self.rm_rival.getPV()

        self.liApPosibles = liApPosibles
        in_the_opening = not (liApPosibles is None)
        if in_the_opening:
            siRival = False

        self.w = w = PantallaTutor.PantallaTutor(self, self, siRival, in_the_opening, self.is_white, siPuntos)

        self.cambiadoRM(0)

        self.partidaUsuario = Game.Game(self.move.position)
        self.partidaUsuario.add_move(self.move)
        self.partidaUsuario.read_pv(self.rmUsuario.getPV())
        self.posUsuario = 0
        self.maxUsuario = len(self.partidaUsuario.li_moves)
        self.tableroUsuario.setposition(self.move.position)
        w.ponPuntuacionUsuario(self.rmUsuario.texto())

        if siRival:
            self.rm_rival.cambiaColor()
            pvBloque = self.rm_rival.getPV()
            n = pvBloque.find(" ")
            if n > 0:
                pvBloque = pvBloque[n + 1 :].strip()
            else:
                pvBloque = ""

            if pvBloque:
                self.partidaRival = Game.Game(self.last_position)
                self.partidaRival.read_pv(pvBloque)
                self.posRival = 0
                self.maxRival = len(self.partidaRival.li_moves) - 1
                if self.maxRival >= 0:
                    self.tableroRival.setposition(self.partidaRival.li_moves[0].position)
                    self.mueve_rival(True)
                    w.ponPuntuacionRival(self.rm_rival.texto())

        self.moving_tutor(True)
        self.moving_user(True)

        if w.exec_():
            if w.siElegidaApertura:
                from_sq = self.partidaAperturas.move(0).from_sq
                to_sq = self.partidaAperturas.move(0).to_sq
                if from_sq == self.from_sq and to_sq == self.to_sq:
                    return False
                self.from_sq = from_sq
                self.to_sq = to_sq
                self.promotion = ""
            elif w.respLibro:
                self.from_sq, self.to_sq, self.promotion = w.respLibro
            else:
                rm = self.list_rm[self.pos_rm][0]
                self.from_sq = rm.from_sq
                self.to_sq = rm.to_sq
                self.promotion = rm.promotion
            return True
        return False