Ejemplo n.º 1
0
    def busca(self, tipo, clave):
        if tipo is None:
            if clave.startswith("*"):
                clave = clave[1:]
                tipo = EXTERNO
            else:
                tipo = INTERNO

        rival = None
        if tipo == EXTERNO:
            for cm in self.liMotoresExternos:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                tipo = INTERNO
                clave = self.configuracion.rivalInicial

        if tipo == MICGM:
            for cm in self.liMotoresGM:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                tipo = INTERNO
                clave = self.configuracion.rivalInicial

        if tipo == MICPER:
            liMotores = EnginesMicElo.listaCompleta()

            for cm in liMotores:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                tipo = INTERNO
                clave = self.configuracion.rivalInicial

        if tipo == INTERNO:
            for cm in self.liMotoresInternos:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                rival = self.liMotoresInternos[0]

        if tipo == FIXED:
            rival = None
            for elo, lista in self.dicMotoresFixedElo.iteritems():
                for cm in lista:
                    if cm.clave == clave:
                        rival = cm
                        break
                if rival:
                    break
            if not rival:
                rival = self.liMotoresInternos[0]

        return tipo, rival
Ejemplo n.º 2
0
 def listaMotores(self, elo):
     li = EnginesMicElo.listaCompleta()
     numX = len(li)
     for num, mt in enumerate(li):
         mt.siJugable = True
         mt.siOut = False
         mt.numero = numX - num
     return li
Ejemplo n.º 3
0
 def listaMotores(self, elo):
     li = EnginesMicElo.listaCompleta()
     numX = len(li)
     for num, mt in enumerate(li):
         mt.siJugable = True
         mt.siOut = False
         mt.numero = numX-num
     return li
Ejemplo n.º 4
0
def lista():
    li = EnginesMicElo.listaCompleta()
    dicElos = DicMicElos().dic()
    for mt in li:
        k = mt.clave
        if k in dicElos:
            mt.elo = dicElos[k]

    return li
Ejemplo n.º 5
0
 def __init__(self, configuracion):
     self.configuracion = configuracion
     self.dicIconos = {INTERNO: Iconos.Motor(), EXTERNO: Iconos.MotoresExternos(),
                         MICGM: Iconos.GranMaestro(), MICPER:Iconos.EloTimed(),
                         FIXED: Iconos.FixedElo()}
     self.liMotoresGM = EnginesMicElo.listaGM()
     self.liMotoresInternos = configuracion.listaMotoresInternos()
     self.dicMotoresFixedElo = configuracion.dicMotoresFixedElo()
     self.rehazMotoresExternos()
Ejemplo n.º 6
0
def lista():
    li = EnginesMicElo.listaCompleta()
    dicElos = DicMicElos().dic()
    for mt in li:
        k = mt.clave
        if k in dicElos:
            mt.elo = dicElos[k]

    return li
Ejemplo n.º 7
0
 def __init__(self, configuracion):
     self.configuracion = configuracion
     self.dicIconos = {INTERNO: Iconos.Motor(), EXTERNO: Iconos.MotoresExternos(),
                         MICGM: Iconos.GranMaestro(), MICPER:Iconos.EloTimed(),
                         FIXED: Iconos.FixedElo()}
     self.dicMotoresGM = EnginesMicElo.dicGM()
     self.liMotoresInternos = configuracion.listaMotoresInternos()
     self.dicMotoresFixedElo = configuracion.dicMotoresFixedElo()
     self.rehazMotoresExternos()
    def busca(self, tipo, clave):
        if tipo is None:
            if clave.startswith("*"):
                clave = clave[1:]
                tipo = EXTERNO
            else:
                tipo = INTERNO

        rival = None
        if tipo == EXTERNO:
            for cm in self.liMotoresExternos:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                tipo = INTERNO
                clave = self.configuracion.rivalInicial

        if tipo == MICGM:
            for cm in self.liMotoresGM:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                tipo = INTERNO
                clave = self.configuracion.rivalInicial

        if tipo == MICPER:
            liMotores = EnginesMicElo.listaCompleta()

            for cm in liMotores:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                tipo = INTERNO
                clave = self.configuracion.rivalInicial

        if tipo == INTERNO:
            for cm in self.liMotoresInternos:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                rival = self.liMotoresInternos[0]

        if tipo == FIXED:
            rival = None
            for elo, lista in self.dicMotoresFixedElo.iteritems():
                for cm in lista:
                    if cm.clave == clave:
                        rival = cm
                        break
                if rival:
                    break
            if not rival:
                rival = self.liMotoresInternos[0]

        if tipo == IRINA:
            rival = None
            for cm in self.liIrina:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                rival = self.liMotoresInternos[0]

        if tipo == ELO:
            rival = None
            for cm in self.liElo:
                if cm.clave == clave:
                    rival = cm
                    break
            if not rival:
                rival = self.liMotoresInternos[0]

        return tipo, rival
Ejemplo n.º 9
0
    def inicio(self, datosMotor, minutos, segundos, siCompetitivo, aplazamiento=None):

        self.tipoJuego = kJugMicElo

        self.resultado = None
        self.siJuegaHumano = False
        self.estado = kJugando
        self.siCompetitivo = siCompetitivo

        if aplazamiento:
            siBlancas = aplazamiento["SIBLANCAS"]
        else:
            siBlancas = self.determinaColor(datosMotor)

        self.siJugamosConBlancas = siBlancas
        self.siRivalConBlancas = not siBlancas

        self.rmRival = None
        self.liRMrival = []
        self.noMolestar = 0
        self.resignPTS = -1000

        self.siTutorActivado = False
        self.pantalla.ponActivarTutor(False)
        self.ayudasPGN = self.ayudas = 0

        self.tiempo = {}
        self.maxSegundos = minutos * 60
        self.segundosJugada = segundos

        # -Aplazamiento 1/2--------------------------------------------------
        if aplazamiento:
            self.partida.recuperaDeTexto(aplazamiento["JUGADAS"])

            self.datosMotor = EnginesMicElo.MotorMicElo(aplazamiento["NOMBRE"], aplazamiento["EXE"])
            self.datosMotor.alias = aplazamiento["NOMBRE"]
            self.datosMotor.elo = aplazamiento["ELO"]
            self.datosMotor.pgana = aplazamiento["PGANA"]
            self.datosMotor.ppierde = aplazamiento["PPIERDE"]
            self.datosMotor.ptablas = aplazamiento["PTABLAS"]
            self.datosMotor.book = aplazamiento["BOOK"]
            self.datosMotor.recuperaUCI(aplazamiento["UCI"])

            self.tiempo[True] = Util.Timer(aplazamiento["TIEMPOBLANCAS"])
            self.tiempo[False] = Util.Timer(aplazamiento["TIEMPONEGRAS"])

            self.maxSegundos = aplazamiento["MAXSEGUNDOS"]
            self.segundosJugada = aplazamiento["SEGUNDOSJUGADA"]

            self.listaAperturasStd.asignaApertura(self.partida)

        else:
            self.datosMotor = datosMotor
            self.tiempo[True] = Util.Timer(self.maxSegundos)
            self.tiempo[False] = Util.Timer(self.maxSegundos)

        cbook = self.datosMotor.book if self.datosMotor.book else VarGen.tbook
        self.book = Books.Libro("P", cbook, cbook, True)
        self.book.polyglot()

        elo = self.datosMotor.elo
        self.maxMoveBook = elo/200 if 0 <= elo <= 1700 else 9999

        eloengine = self.datosMotor.elo
        eloplayer = self.configuracion.miceloActivo(siCompetitivo)
        self.whiteElo = eloplayer if siBlancas else eloengine
        self.blackElo = eloplayer if not siBlancas else eloengine

        self.xrival = self.procesador.creaGestorMotor(self.datosMotor, None, None,
                                                      siMultiPV=self.datosMotor.multiPV > 0)

        self.pteToolRendirse = False
        if not self.siCompetitivo:
            self.pteToolRendirse = True
            self.maxPlyRendirse = 6
        elif self.siJugamosConBlancas:
            self.pteToolRendirse = True
            self.maxPlyRendirse = 1
        else:
            self.maxPlyRendirse = 0

        if aplazamiento and self.partida.numJugadas() > self.maxPlyRendirse:
            self.pteToolRendirse = False

        self.ponToolBar()

        self.pantalla.activaJuego(True, True, siAyudas=False)
        self.ponMensajero(self.mueveHumano)
        self.ponPosicion(self.partida.ultPosicion)
        self.ponPiezasAbajo(siBlancas)
        self.quitaAyudas(True, siQuitarAtras=siCompetitivo)
        self.mostrarIndicador(True)

        nbsp = "&nbsp;" * 3

        txt = "%s:%+d%s%s:%+d%s%s:%+d" % ( _("Win"), self.datosMotor.pgana, nbsp,
                                           _("Draw"), self.datosMotor.ptablas, nbsp,
                                           _("Lost"), self.datosMotor.ppierde )
        self.ponRotulo1("<center>%s</center>" % txt)
        self.ponRotulo2("")
        self.pgnRefresh(True)
        self.ponCapInfoPorDefecto()

        #-Aplazamiento 2/2--------------------------------------------------
        if aplazamiento:
            self.mueveJugada(kMoverFinal)
            self.siPrimeraJugadaHecha = True
        else:
            self.siPrimeraJugadaHecha = False

        tpBL = self.tiempo[True].etiqueta()
        tpNG = self.tiempo[False].etiqueta()
        self.rival = rival = self.datosMotor.alias + " (%d)" % self.datosMotor.elo
        jugador = self.configuracion.jugador + " (%d)" % self.configuracion.miceloActivo(siCompetitivo)
        bl, ng = jugador, rival
        if self.siRivalConBlancas:
            bl, ng = ng, bl
        self.pantalla.ponDatosReloj(bl, tpBL, ng, tpNG)
        self.refresh()

        self.ponPosicionDGT()

        self.siguienteJugada()