# -*- coding: latin-1 -*-

import QT.PantallaAperturas as PantallaAperturas

from Constantes import *

#==========================================================================================================================================

class JuegaAperturaStd :
    def __init__( self, bloque ) :
        self.bloque = bloque
        self.liMovs = bloque.a1h8.split( " " )
        self.activa = True
        self.movActual = -1
        self.ultMov = len(self.liMovs)-1

    #-----------------------------------------------------------------------------------------------------------------
    def juegaMotor( self ) :
        self.movActual += 1
        if self.movActual > self.ultMov :
            self.activa = False
            return False, None, None, None

        if not self.activa :
            return False, None, None, None

        movimiento = self.liMovs[self.movActual]
        return True, movimiento[:2], movimiento[2:], None

    #-----------------------------------------------------------------------------------------------------------------
    def compruebaHumano( self, desde, hasta ) :
        if (self.movActual+1) > self.ultMov :
            self.activa = False
            return False
        movimiento = self.liMovs[self.movActual+1]
        desdem, hastam = movimiento[:2], movimiento[2:]
        if desde == desdem and hasta == hastam :
            return True
        else :
            return False

    #-----------------------------------------------------------------------------------------------------------------
    def haJugadoHumano( self, desde, hasta ) :
        self.movActual +=1
        if not self.activa :
            return False
        self.activa == self.ultMov > self.movActual
        return self.activa

    #-----------------------------------------------------------------------------------------------------------------
    def intentaJugarHumano( self, procesador, jg, usuDesde, usuHasta ) :
        movimiento = self.liMovs[self.movActual+1]
        apDesde, apHasta = movimiento[:2], movimiento[2:4]
        if procesador.siTutorActivado :
            ventana = procesador.pantalla
            confTablero = procesador.configuracion.cTableroT
            siBlancas = procesador.siJugamosConBlancas
            posicion = procesador.partida.ultPosicion
            w = PantallaAperturas.TutorApertura( ventana, confTablero, siBlancas, posicion, usuDesde, usuHasta, apDesde, apHasta )
            resp = "A"
            if w.exec_() :
                resp = w.resp
            if resp == "A" :
                return kSigueApertura, apDesde, apHasta, ""
            else :
                return kSigueUsuario, usuDesde, usuHasta, ""
        else :
            return kMalApertura, usuDesde, usuHasta, ""
#==========================================================================================================================================

