class Nuevojuego(QMainWindow):

    def __init__(self):
        """Contructor
            Setea uno de los dos checkbox de alertas en true y anade el fondo a la ventana."""
        QMainWindow.__init__(self)
        self.ui= Ui_NuevoJuego()
        self.ui.setupUi(self)
        self.ui.pBJugar.clicked.connect(self.onPbjugarClicked)
        self.ui.pBCancelar.clicked.connect(self.onPbcancelarClicked)
        self.MessageBox= ctypes.windll.user32.MessageBoxA
        self.MB_ICONERROR = 0x00000010L #Critical Icon
        
    def onPbjugarClicked(self):
        """Despliega la ventana con el tablero para empezar el juego
            *Crea una instancia de la clase Sudoku y la muestra.
            *Verificara que se halla escogido un solo nivel de dificultad.
            *Verificara que halla escogido al menos una opcion de alerta."""
        facil=self.ui.rBFacil.isChecked()
        medio=self.ui.rBMedio.isChecked()
        dificil=self.ui.rBDificil.isChecked()
        experto=self.ui.rBExperto.isChecked()
        invalida=self.ui.cbInvalidas.isChecked()
        incorrecta=self.ui.cbIncorrectas.isChecked()
        ayuda=self.ui.cbhelp.isChecked()
        if facil==False and medio==False and dificil==False and experto==False:
            self.MessageBox(None,"Seleccione Un Nivel De Dificultad..!","ERROR",self.MB_ICONERROR)
        elif invalida==False and incorrecta==False:
            self.MessageBox(None,"Seleccione al menos una opcion de alertas..!","ERROR",self.MB_ICONERROR)
        elif facil:
            self.n= Sudoku(1,invalida,incorrecta,ayuda,"")
            self.n.setVisible(True)
            self.close()
        elif medio:
            self.n= Sudoku(2,invalida,incorrecta,ayuda,"")
            self.n.setVisible(True)
            self.close()
        elif dificil:
            self.n= Sudoku(3,invalida,incorrecta,ayuda,"")
            self.n.setVisible(True)
            self.close()
        elif experto:
            self.n= Sudoku(4,invalida,incorrecta,ayuda,"")
            self.n.setVisible(True)
            self.close()
        
    def onPbcancelarClicked(self):
        """Despliega la ventana anterior
            Crea una instancia de la ventana principal y la muestra"""
        from principal import Principal
        self.p= Principal()
        self.p.setVisible(True)
        self.close()
class Principal(QMainWindow):

    def __init__(self):
        """Costructor"""
        QMainWindow.__init__(self)
        self.ui= Ui_principal()
        self.ui.setupUi(self)
        self.show()
        self.ui.nuevoJuego.clicked.connect(self.onNuevojuegoClicked)
        self.ui.AcercaDe.clicked.connect(self.onAcercadeClicked)
        self.ui.salir.clicked.connect(self.onSalirClicked)
        self.ui.CargaJuego.clicked.connect(self.onCargajuegoClicked)
        self.ui.Estadisticas.clicked.connect(self.onEstadisticaClicked)
        self.MessageBox= ctypes.windll.user32.MessageBoxA
        self.MB_ICONERROR = 0x00000010L #Critical Icon
    
    def onNuevojuegoClicked(self):
        """Inicia un nuevo juego
            Crea una instancia de la clase NuevoJuego y la muestra para poder escoger las opciones de juego."""
        self.n= Nuevojuego()
        self.n.setVisible(True)
        self.close()
    
    def onAcercadeClicked(self):  
        """Muestra informacion del grupo desarrollador"""      
        self.a = Acercade()
        self.a.setVisible(True)        
        self.close()
    
    def onEstadisticaClicked(self):  
        """Muestra informacion del grupo desarrollador"""      
        self.a = estadisticas()
        self.a.setVisible(True)        
        self.close()
        
    def onSalirClicked(self):
        """Nos permite cerrar la aplicacion"""
        self.close()
        
    def onCargajuegoClicked(self):
        """Nos permite Cargar un juego anteriormente guardado"""
        (nombre,ok) = QInputDialog.getText(self, self.tr("Sudoku"), self.tr("Nombre:"),QLineEdit.Normal, self.tr(""))
        if ok==True:
            while str(nombre)=="" and ok==True:
                self.MessageBox(None,"Ingrese Un Nombre..!","ERROR",self.MB_ICONERROR)
                (nombre,ok) = QInputDialog.getText(self, self.tr("Sudoku"), self.tr("Nombre:"),QLineEdit.Normal, self.tr(""))
            if ok==True:
                archivo=open("Partidas.txt","r")
                linea=archivo.readline()
                Existe=0
                while linea!="":
                    partida=linea.split(",")
                    nombreG=partida[0]
                    if str(nombre)==nombreG:
                        Existe=1
                        break
                    linea=archivo.readline()
                if Existe==1:
                    invalida=partida[3]
                    incorrecta=partida[4]
                    ayuda=partida[5]
                    self.n= Sudoku(5,invalida,incorrecta,ayuda,partida)
                    self.n.setVisible(True)
                    self.close()
                else:
                    self.MessageBox(None,"No Se Encontro El Archivo..!","ERROR",self.MB_ICONERROR)
                archivo.close()