Beispiel #1
0
/*
 *  Mostra na tela os indicadores básicos do jogo:
 *  vidas restantes, HP e pontuação.
 */
void Jogo::exibeHud()
{
    float x = 0.10 * janela.getSize().x;
    float y = 0.15 * janela.getSize().y;

    /* Desenha vidas extras da nave */
    static sf::CircleShape losango(20.0, 4);
    for (int i = 0; i < nave->getVidas(); i++) {
        double deltaX = 2.5 * losango.getRadius();
        losango.setPosition(x + (i * deltaX), y);
        janela.draw(losango); 
    }
    /* Desenha caixa da lifebar */
    y += 3.0 * losango.getRadius();
    static sf::RectangleShape caixa({200.0, 10.0});
    caixa.setPosition(x, y);
    caixa.setFillColor(sf::Color::Blue);
    janela.draw(caixa);

    /* Desenha lifebar com parcial do HP */
    float k = (float) nave->getHP() / nave->getHPMax();
    sf::RectangleShape lifebar({k * caixa.getSize().x,
                                    caixa.getSize().y});
    lifebar.setPosition(x, y);
    lifebar.setFillColor(k > 0.25 ? sf::Color::Green : sf::Color::Red);
    janela.draw(lifebar);

    /* Imprime pontuação (e, se for o caso, mensagem de pausa) */
    y += 2.5 * lifebar.getSize().y;
    sf::String str = "Score: " + std::to_string(nave->getScore());
    if (pausado) str += " (pausa)";
    sf::Text texto(str, fonte, 20);
    texto.setPosition(x, y);
    janela.draw(texto);
}
int main(int argc, char **argv){

	if (argc>=8)
	{
		Npata_arg=atoi(argv[1]);
		beta=atof(argv[2]);
		dh=atof(argv[3]);
        x_Offset=atof(argv[4]);
        y_Offset=atof(argv[5]);
        z_Offset=atof(argv[6]);
        phi=atof(argv[7])*pi/180.0;
        Tripode=atof(argv[8]);
	}
	else
	{
		ROS_ERROR("Nodo 2::[%d] Indique argumentos!\n",Npata_arg);
		sleep(5000);
		return 0;
	}

    /*Inicio nodo de ROS*/
    std::string nodeName("Nodo2_Parametrizacion_pata");
	std::string Id(boost::lexical_cast<std::string>(Npata_arg));
	nodeName+=Id;
	ros::init(argc,argv,nodeName.c_str());
    ros::NodeHandle node;
    //ROS_INFO("Nodo2_Parametrizacion just started\n");

//-- Topicos susbcritos y publicados
    chatter_pub = node.advertise<camina7::AngulosMotor>("DatosDeMotores", 100);
    ros::Subscriber subInfo = node.subscribe("/vrep/info",1,infoCallback);
//-- Recibe topico especifico
    ros::Subscriber sub = node.subscribe("datosTrayectoria", 100, datosCallback);
//-- Clientes y Servicios
    client_Cinversa = node.serviceClient<camina7::CinversaParametros>("Cinversa");
    client_TransHomogenea = node.serviceClient<camina7::TransHomogeneaParametros>("TransHomogenea");

    std::string fileName("../fuerte_workspace/sandbox/TesisMaureen/ROS/camina7/datos/SalidaX");
    std::string texto(".txt");
    fileName+=Id;
    fileName+=texto;
    fp1 = fopen(fileName.c_str(),"w+");

    std::string fileName2("../fuerte_workspace/sandbox/TesisMaureen/ROS/camina7/datos/SalidaQ");
    fileName2+=Id;
    fileName2+=texto;
    fp2 = fopen(fileName2.c_str(),"w+");

    while (ros::ok() && simulationRunning)
    {
	  ros::spinOnce();
    }
    fclose(fp1);
    fclose(fp2);
    //ROS_INFO("Adios2!");
    ros::shutdown();
    return 0;
}
Beispiel #3
0
QString Funcoes::NovaVersao()
{
    QString versao;
    static bool verificou = false;

    if( verificou )
        return QString();

    if( arquivo != 0 && !ftp->hasPendingCommands() )//Se fiver apontado para algum arquivo
    {
        if( arquivo->isOpen() )
            arquivo->close();

        QFile fArquivo( QCoreApplication::applicationDirPath() + "/versao.txt" );

        fArquivo.open( QIODevice::ReadOnly );

        QTextStream texto( &fArquivo );

        do
        {
            versao += texto.readLine();
        }while( !texto.atEnd() );

        if( ftp->errorString() != "Unknown error")
        {
            QMessageBox::information(0 , "", "Erro ao verificar por novas versões.\n"
                                     "\nRotina: Funcoes::NovaVersao()\nDescrição: "
                                     + ftp->errorString() );
        }
        /*
        else if(  ftp->currentCommand() != QFtp::None )
        {
            QMessageBox::information(0 , "", "Executando comando:\n"
                                     + QString::number( ftp->currentCommand() ) );
        }*/
//        else
//        {
//            QMessageBox::information(0 , "", "Stado ftp:\n"
//                                     + QString::number( ftp->state() ) );
//        }

        arquivo = 0;
        ftp = 0;
        verificou = true;

        delete ftp;
        delete arquivo;
    }

    QString v( versao );

    return v;
}
Beispiel #4
0
int main()
{	Tarea *listap;	//creamos la variable lista.
	listap=NULL;
	char identificador[20];
	char identificador1[4];
	char salto_de_linea[]="\n";
	int sal,z;
	char opcion;
	system("clear");
	asteriscos('*',80,2);
	texto("GESTOR DE TAREAS DE UNA AGENDA",'*',80);
	asteriscos('*',80,2);
	printf("\n\n\x1b[35mIntroduzca su identificador: \x1b[0m");
	scanf(" %s",identificador);
	strcat(identificador,salto_de_linea);
	system("clear");
	sal=0;
	while(sal!=1){		//entramos en el bucle del menu.
	printf("\x1b[35mAgenda:\x1b[0m");
	printf("\n1)\x1b[35m Crear tarea.\x1b[0m");
	printf("\n2)\x1b[35m Ver tarea.\x1b[0m");
	printf("\n3)\x1b[35m Ver lista de tareas.\x1b[0m");
	printf("\n0)\x1b[35m Salir del programa.\x1b[0m");
	printf("\n\n\x1b[35m¿Siguiente operación? \x1b[0m");
	scanf(" %c",&opcion);
	printf("\n");
	switch(opcion)
	{
		case '1':
			z=cargarIdentificador(listap);//obtengo el ultimo identificador de la lista.
			listap=crear_tarea(listap,identificador,z); //llamamos a la funcion crear tarea que nos devuelve la lista actualizada.
			break;
		case '2':
			printf("\x1b[36mIntroduce identificador de tarea: \x1b[0m");
			scanf("%s%*c",identificador1);
			strcat(identificador1, salto_de_linea); 
			ver_tarea(identificador1,identificador); //llamamos a la funcion ver tarea.
			break;
		case '3':
			ver_lista(listap); //llamamos a la funcion de ver lista.
			break;
		case '0':
			sal=sale(listap); //llamamos a la funcion salir que nos devuelve un valor para decidir si salimos del bucle o no.
			break;
		default:
			printf("\033[31mELECCIÓN INCORRECTA,PULSAR 1,2,3 o 0: \x1b[0m \n");
			break;	
	}
}
free(listap);//liberamos el puntero.
system("clear");
return 0;
}
Beispiel #5
0
void ServerLight::readyRead() {
    BL_FUNC_DEBUG
    static QByteArray array = "";
    QByteArray lectura = "";
    QTcpSocket *socket = (QTcpSocket *) sender();
    lectura = socket->readAll();
    g_buffers[socket]  += lectura;
    array += lectura;
    QString mensaje = _("Mensaje desde: ")+ socket->peerAddress().toString() + "\n";
    
    QString texto(g_buffers[socket]);

    fprintf(stderr, "\nPaquete recibido:\n");
    fprintf(stderr, array);
    fprintf(stderr, "\nPaquete finalizado :\n");
    fprintf(stderr, QString::number(array.size()).toAscii());
    fprintf(stderr, "\nFin Paquete recibido :\n");
    
    /// Si se detecta el final de la transmision se procesa la informacion.
    if (texto.contains("</DOCUMENT>", Qt::CaseInsensitive)) {
    
	if (texto.contains("<GETCOMMAND>categoria_articulo</GETCOMMAND>", Qt::CaseInsensitive)) {
	    fprintf(stderr, categoryArticleXML().toAscii() );
	    socket->write(categoryArticleXML().toAscii());
	    /// Hay que cerrar el socket despues del envio.
	    g_buffers[socket] = "";
	    g_buffers.remove(socket);
	    socket->close();
	
        } else if (texto.contains("<PUTCOMMAND>ticket_data</PUTCOMMAND>", Qt::CaseInsensitive)) {
	    /// Nos han mandado la informacion de un ticket.
	    processTicketDataXML(texto);
	    g_buffers[socket] = "";
	    g_buffers.remove(socket);
	    socket->close();
        } else {
	    //fprintf(stderr, "--NO ENTIENDO--");
	} // end if

	/// Como se ha completado la recepcion de datos y se han procesado, se resetea el buffer de entrada.
	array = "";

    } // end if

    
}
void imprimir(Valores *vet, int l, FILE *fr, char nome[])
{
	int i;
	char num;
	fr = fopen(nome, "wb");//salvar as alterações
	fwrite(&l, sizeof(int), 1, fr);
	//fprintf(fr, "%d\n",l);
	for (i = 0;i < l; i++)
	{	//fprintf(fr, "%c %d %g",vet[i].c, vet[i].inteiro, vet[i].real);
		//fprintf(fr,"\n");
		fwrite(&vet[i].c, sizeof(char), 1, fr);
		fwrite(&vet[i].inteiro, sizeof(int), 1, fr);
		fwrite(&vet[i].real, sizeof(float), 1, fr);
	}
	fclose(fr);
	free(vet);
	texto(vet,l,fr,nome);
}
Beispiel #7
0
/*
 *  Exibe o número de quadros por segundo que o jogo está
 *  desenhando no momento, caso a opção esteja ativada.
 */
void Jogo::exibeFps()
{
    float x = 0.80 * janela.getSize().x;
    float y = 0.15 * janela.getSize().y;

    /* FPS só é alterado na tela a cada tantos timesteps */
    static int fps, cont = 20;
    cont += getDelayTempo() * 10/1000.0;
    if (cont >= 20) {
        fps = 1000.0/(getDelayTempo() - 1);
        cont = cont % 20;
    }
    /* Imprime fps na tela */
    sf::String mostrador = std::to_string(fps > 60 ? 60 : fps) + " fps";
    sf::Text texto(mostrador, fonte, 20);
    texto.setPosition({x, y});
    janela.draw(texto);
}
Beispiel #8
0
void MainWindow::openPass(QString fileName)
{
    QByteArray bac = fileName.toLatin1();
    char *filec = bac.data();
    std::ifstream texto(filec);
    if (!texto) return;

    if (!(fileName.isEmpty())) {
        QString key = QInputDialog::getText(this,"Passphrase","Please insert the encription key for the password file:");
        if (key.isNull() || key.isEmpty()) key = alphabet.at(0);
        if (texto) {
            on_actionNew_triggered();
            QString tempyval;
            char tmpchr;
            int i = 0;
            int tablea = 0;
            do {
                texto >> tmpchr;
                if (tmpchr!='|') tempyval = tempyval + tmpchr;
                if (tmpchr=='|') {
                    if ((tablea==1) and (tempyval != QString("table1"))  and (tempyval != QString("function")) and (tempyval != QString("result")) ) {
                        if ((i%2)!=0) {
                            QTableWidgetItem *titemo = ui->accountList->item((i-1)/2,1) ;
                            if (titemo) titemo->setText(decrypt(tempyval, key, alphabet)) ;
                        } else {
                            QTableWidgetItem *titem = ui->accountList->item((i/2),0) ;
                            if (titem) titem->setText(decrypt(tempyval, key, alphabet)) ;
                        }
                        i++;
                    }
                    if (tempyval == QString("table1")) {
                        tablea=1;
                    }

                    tempyval = "";
                }

            } while (!texto.eof());
            texto.close();
        }
    }
/************************************
verificar:
Funcion que valida el atributo y
el valor asignado a este atributo,por
medio de funciones auxiliares.
*************************************/
void verificar(char* tag, char* att,char* valor){
int atr;
if (strcmp(tag,"a")==0){
	len=(sizeof(a)/sizeof(a[0]));
	atr=verificar_atributo(a,att,"a");
        if(atr==1){
             if(strcmp(att,"href")==0)
                  url(att,valor);
             else if(strcmp(att,"shape")==0){
                  len_v=(sizeof(shape)/sizeof(shape[0]));
                  verificar_valor(shape,valor,"shape"); }
             else texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"b")==0){
	len=(sizeof(b)/sizeof(b[0]));
	atr=verificar_atributo(b,att,"b");
        if(atr==1){
             texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
             }}
else if (strcmp(tag,"blockquote")==0){
	len=(sizeof(blockquote)/sizeof(blockquote[0]));
	atr=verificar_atributo(blockquote,att,"blockquote");
	if(atr==1){
             url(att,valor); //cite ->url
             }}
else if (strcmp(tag,"body")==0){
	len=(sizeof(body)/sizeof(body[0]));
	atr=verificar_atributo(body,att,"body");
        if(atr==1){
	len_v=(sizeof(color)/sizeof(color[0]));
        verificar_valor(color,valor,att);}}
else if (strcmp(tag,"br")==0){
	len=(sizeof(br)/sizeof(br[0]));
	atr=verificar_atributo(br,att,"br");
        if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"button")==0){
	len=(sizeof(button)/sizeof(button[0]));
	atr=verificar_atributo(button,att,"button");
	if(atr==1){
             if(strcmp(att,"disabled")==0){
                  len_v=(sizeof(disabled)/sizeof(disabled[0]));
                  verificar_valor(disabled,valor,"disabled");}
	     else if(strcmp(att,"autofocus")==0){
                  len_v=(sizeof(autofocus)/sizeof(autofocus[0]));
                  verificar_valor(autofocus,valor,"autofocus");}
             else texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"caption")==0){
	len=(sizeof(caption)/sizeof(caption[0]));
	atr=verificar_atributo(caption,att,"caption");
        if(atr==1){
	len_v=(sizeof(align)/sizeof(align[0]));
        verificar_valor(align,valor,"align");}}
else if (strcmp(tag,"code")==0){
	len=(sizeof(code)/sizeof(code[0]));
	atr=verificar_atributo(code,att,"code");
        if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"footer")==0){
	len=(sizeof(footer)/sizeof(footer[0]));
	atr=verificar_atributo(footer,att,"footer");
  if(atr==1){
	     texto(att,valor);
}}
else if (strcmp(tag,"div")==0){
	len=(sizeof(div_)/sizeof(div_[0]));
	atr=verificar_atributo(div_,att,"div");
        if(atr==1){
           if(strcmp(att,"align")==0 ){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align");}
             else texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"dl")==0){
	len=(sizeof(dl)/sizeof(dl[0]));
	atr=verificar_atributo(dl,att,"dl");
         if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"dt")==0){
	len=(sizeof(dt)/sizeof(dt[0]));
	atr=verificar_atributo(dt,att,"dt");
         if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"dd")==0){
	len=(sizeof(dd)/sizeof(dd[0]));
	atr=verificar_atributo(dd,att,"dd");
         if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"em")==0){
	len=(sizeof(em)/sizeof(em[0]));
	atr=verificar_atributo(em,att,"em");
          if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"embed")==0){
	len=(sizeof(embed)/sizeof(embed[0]));
	atr=verificar_atributo(embed,att,"embed");
       if(atr==1){
            if(strcmp(att,"height")==0 | strcmp(att,"width")==0 )
                  pixels(att,valor);
             else if(strcmp(att,"src")==0)
                  url(att,valor);
	     else texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"pre")==0){
	len=(sizeof(pre)/sizeof(pre[0]));
	atr=verificar_atributo(pre,att,"pre");
        if(atr==1){
            if(strcmp(att,"width")==0 )
                  pixels(att,valor);
             else 
                  texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"

}}
else if (strcmp(tag,"form")==0){
	len=(sizeof(form)/sizeof(form[0]));
	atr=verificar_atributo(form,att,"form");
	if(atr==1){
            if(strcmp(att,"method")==0 ){
                  len_v=(sizeof(method)/sizeof(method[0]));
                  verificar_valor(method,valor,"method");}
             else if(strcmp(att,"action")==0)
                  url(att,valor);
	     else texto(att,valor); // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"headings")==0){
	len=(sizeof(headings)/sizeof(headings[0]));
	atr=verificar_atributo(headings,att,"headings");
         if(atr==1){
           if(strcmp(att,"align")==0 ){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align");}
             else {
			texto(att,valor); // acepta los valores de los atributos generales , que son texto "type","id","class"
                  }
}}
else if (strcmp(tag,"head")==0){
	len=(sizeof(head)/sizeof(head[0]));
	atr=verificar_atributo(head,att,"head");
        if(atr==1){
	     texto(att,valor); // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"header")==0){
	len=(sizeof(header)/sizeof(header[0]));
	atr=verificar_atributo(header,att,"header");
        if(atr==1){
	     texto(att,valor); // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"hr")==0){
	len=(sizeof(hr)/sizeof(hr[0]));
	atr=verificar_atributo(hr,att,"hr");
        if(atr==1){
             if(strcmp(att,"size")==0 | strcmp(att,"width")==0  )
                   pixels(att,valor);
           else if(strcmp(att,"align")==0 ){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align");}
             else texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"html")==0){
	len=(sizeof(html)/sizeof(html[0]));
	atr=verificar_atributo(html,att,"html");
        if(atr==1){
           if(strcmp(att,"xmlns")==0 ){
                  len_v=(sizeof(xmlns)/sizeof(xmlns[0]));
                  verificar_valor(xmlns,valor,"xmlns");}
             else texto(att,valor); // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"img")==0){
	len=(sizeof(img)/sizeof(img[0]));
	atr=verificar_atributo(img,att,"img");
        if(atr==1){
             if(strcmp(att,"align")==0){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align");}
             else if(strcmp(att,"height")==0 | strcmp(att,"width")==0)
                  pixels(att,valor);
             else if(strcmp(att,"src")==0)
                   url(att,valor);
             else  texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class"   
 }}
else if (strcmp(tag,"input")==0){
	len=(sizeof(input)/sizeof(input[0]));
	atr=verificar_atributo(input,att,"input");
         if(atr==1){
            if(strcmp(att,"height")==0 | strcmp(att,"width")==0 | strcmp(att,"size")==0)
                  pixels(att,valor);
             else if(strcmp(att,"src")==0)
                   url(att,valor);
             else  texto(att,valor);     // acepta los valores de los atributos generales , que son texto "type","id","class"
 }}
else if (strcmp(tag,"li")==0){
	len=(sizeof(li)/sizeof(li[0]));
	atr=verificar_atributo(li,att,"li");
           if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"link")==0){
	len=(sizeof(link)/sizeof(link[0]));
	atr=verificar_atributo(link,att,"link");
        if(atr==1){
            if(strcmp(att,"href")==0)
                  url(att,valor);
             else if(strcmp(att,"rel")==0) {
                   len_v=(sizeof(rel)/sizeof(rel[0]));
                  verificar_valor(rel,valor,"rel");}
             else  texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class" 
}}
else if (strcmp(tag,"meta")==0){
	len=(sizeof(meta)/sizeof(meta[0]));
	atr=verificar_atributo(meta,att,"meta");
       if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"object")==0){
	len=(sizeof(object)/sizeof(object[0]));
	atr=verificar_atributo(object,att,"object");
        if(atr==1){
             if(strcmp(att,"hight")==0 | strcmp(att,"width")==0  )
                   pixels(att,valor);
           else if(strcmp(att,"align")==0 ){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align");}
             else texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"ol")==0){
	len=(sizeof(ol)/sizeof(ol[0]));
	atr=verificar_atributo(ol,att,"ol");
        if(atr==1){
           if(strcmp(att,"start")==0 )
                  numero(att,valor);
             else texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"option")==0){
	len=(sizeof(option)/sizeof(option[0]));
	atr=verificar_atributo(option,att,"option");
        if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"p")==0){
	len=(sizeof(p)/sizeof(p[0]));
	atr=verificar_atributo(p,att,"p");
        if(atr==1){
           if(strcmp(att,"align")==0 ){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align");}
             else texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"span")==0){
	len=(sizeof(span)/sizeof(span[0]));
	atr=verificar_atributo(span,att,"span");
        if(atr==1){
	     texto(att,valor);   // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"strong")==0){
	len=(sizeof(strong)/sizeof(strong[0]));
	atr=verificar_atributo(strong,att,"strong");
        if(atr==1){
	     texto(att,valor);   // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"style")==0){
	len=(sizeof(style)/sizeof(style[0]));
	atr=verificar_atributo(style,att,"style");
        if(atr==1){
	     texto(att,valor);
}}
else if (strcmp(tag,"select")==0){
	len=(sizeof(select_)/sizeof(select_[0]));
	atr=verificar_atributo(select_,att,"select");
        if(atr==1){
           if(strcmp(att,"size")==0 )
                  pixels(att,valor);                  
             else texto(att,valor);   // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"table")==0){
	len=(sizeof(table)/sizeof(table[0]));
	atr=verificar_atributo(table,att,"table");
        if(atr==1){
             if(strcmp(att,"bgcolor")==0){
                  len_v=(sizeof(color)/sizeof(color[0]));
                  verificar_valor(color,valor,"bgcolor"); }
             else if(strcmp(att,"border")==0){
                  len_v=(sizeof(border)/sizeof(border[0]));
                  verificar_valor(border,valor,"border"); }
             else if(strcmp(att,"align")==0){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align"); }
             else if(strcmp(att,"width")==0)
                   pixels(att,valor);
             else texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"td")==0){
	len=(sizeof(td)/sizeof(td[0]));
	atr=verificar_atributo(td,att,"td");
        if(atr==1){
             if(strcmp(att,"colspan")==0 | strcmp(att,"rowspan")==0){
                  numero(att,valor); }
             else if(strcmp(att,"bgcolor")==0){
                  len_v=(sizeof(color)/sizeof(color[0]));
                  verificar_valor(color,valor,"bgcolor"); }
             else if(strcmp(att,"align")==0){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align"); }
             else if(strcmp(att,"width")==0 | strcmp(att,"height")==0)
                   pixels(att,valor);
             else texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"th")==0){
	len=(sizeof(th)/sizeof(th[0]));
	atr=verificar_atributo(th,att,"th");
        if(atr==1){
             if(strcmp(att,"colspan")==0 | strcmp(att,"rowspan")==0){
                  numero(att,valor); }
             else if(strcmp(att,"bgcolor")==0){
                  len_v=(sizeof(color)/sizeof(color[0]));
                  verificar_valor(color,valor,"bgcolor"); }
             else if(strcmp(att,"align")==0){
                  len_v=(sizeof(align)/sizeof(align[0]));
                  verificar_valor(align,valor,"align"); }
             else if(strcmp(att,"width")==0 | strcmp(att,"height")==0)
                   pixels(att,valor);
             else texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"title")==0){
	len=(sizeof(title)/sizeof(title[0]));
	atr=verificar_atributo(title,att,"title");
        if(atr==1){
	     texto(att,valor);
}}
else if (strcmp(tag,"tr")==0){
	len=(sizeof(tr)/sizeof(tr[0]));
	atr=verificar_atributo(tr,att,"tr");
         if(atr==1){
           if(strcmp(att,"bgcolor")==0 ){
                  len_v=(sizeof(color)/sizeof(color[0]));
                  verificar_valor(color,valor,"bgcolor"); }
             else texto(att,valor);  // acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"textarea")==0){
	len=(sizeof(textarea)/sizeof(textarea[0]));
	atr=verificar_atributo(textarea,att,"textarea");
        if(atr==1){
           if(strcmp(att,"cols")==0 | strcmp(att,"rows")==0)
                  numero(att,valor);
             else texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"ul")==0){
	len=(sizeof(ul)/sizeof(ul[0]));
	atr=verificar_atributo(ul,att,"ul");
        if(atr==1){
	     texto(att,valor);// acepta los valores de los atributos generales , que son texto "type","id","class"
}}
else if (strcmp(tag,"script")==0){
	len=(sizeof(script)/sizeof(script[0]));
	atr=verificar_atributo(script,att,"script");
        if(atr==1){
	     url(att,valor);
}}
else{ 
	printf("Etiqueta invalida\n");
	}


}