Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: moremo en 30 Diciembre 2016, 20:17 pm



Título: arbol de navidad en C
Publicado por: moremo en 30 Diciembre 2016, 20:17 pm
Hola buenas tardes necesitaría un poco de ayuda para solucionar mi problema y es el siguiente tengo que hacer que cada linea del árbol se encienda de un color diferente, ahora solo puedo cambiar de color todo el árbol,si alguien me puede ayudar se lo agradecería expongo lo que tengo Gracias de antemano
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. void dibujar(int);
  7. void dibuja(int);
  8. void base(int,float);
  9.  
  10. int main(){
  11.    int n,m,j;
  12. system ("COLOR 05");
  13. n=15;
  14.        dibujar(n);
  15.        j=5;
  16.        float b=n/(5.5);
  17.        base(j,b);
  18.        system("pause");
  19.  
  20. }
  21.  
  22. void dibujar(int num){
  23.    int i;
  24.    int x;
  25.    int x2;
  26.  
  27.    for(i=0;i<num;i++){
  28.        for(x=0;x<=(num-i);x++){
  29.            printf(" ");
  30.        }
  31.        for(x2=0;x2<=(i*2);x2++){
  32.            printf("*");
  33.        }
  34.        printf("\n");
  35.    }
  36. }
  37.  
  38. void base(int num, float a){
  39.    int i;
  40.    int x;
  41.    for(i=0;i<num;i++){
  42.        for(x=0;x<=(num*a);x++){
  43.            printf(" ");
  44.        }
  45.            printf("*****");
  46.        printf("\n");
  47.    }
}


Los códigos deben ir en etiquetas GeSHi


Título: Re: arbol de navidad en C
Publicado por: peib0l en 31 Diciembre 2016, 10:10 am
Espero que esto te ayude, he modificado un poco el código para incluir codigos de colores y que funcionara bien en en la terminal de Linux, ahora te toca a ti depurarlo ;)

Código:
    #include <stdio.h> 
    #include <curses.h>
    #include <stdlib.h>

     
    void dibujar(int);
    void dibuja(int);
    void base(int,float);
     
    /*
    * Definición de colores
    */
    #define ANSI_COLOR_RED      "\x1b[31m"
    #define ANSI_COLOR_GREEN    "\x1b[32m"
    #define ANSI_COLOR_YELLOW   "\x1b[33m"
    #define ANSI_COLOR_BLUE     "\x1b[34m"
    #define ANSI_COLOR_MAGENTA  "\x1b[35m"
    #define ANSI_COLOR_CYAN     "\x1b[36m"
    #define ANSI_COLOR_BROWN    "\x1b[43m"
    #define ANSI_COLOR_RESET    "\x1b[0m" // Reseteo del color

    int main(){
        int n,m,j;
  n=15;
        dibujar(n);
        j=5;
        float b=n/(5.5);
        base(j,b);
        return 0;
    }
     
    void dibujar(int num){
        int i;
        int x;
        int x2;
        printf("\n\n");
        for(i=0;i<num;i++){
            printf(ANSI_COLOR_GREEN);
            for(x=0;x<=(num-i);x++){
                printf(" ");
            }
            for(x2=0;x2<=(i*2);x2++){
                printf("*");
            }
            printf( ANSI_COLOR_RESET "\n");
        }
    }
     
    void base(int num, float a){
        int i;
        int x;
        for(i=0;i<num;i++){

            for(x=0;x<=(num*a);x++){
                printf(" ");
            }
            printf(ANSI_COLOR_BROWN "*****" ANSI_COLOR_RESET "\n");
        }
        printf("\n");
    }

Espero que pronto nos muestres el resultado final.

Un saludo.


Título: Re: arbol de navidad en C
Publicado por: moremo en 31 Diciembre 2016, 19:46 pm
gracias por todo si logro que funcione ya lo pondré por aquí sin ningún problema por si algún compañero lo necesita.
feliz entrada de año 2017 para todos
un saludo


Título: Re: arbol de navidad en C
Publicado por: moremo en 8 Enero 2017, 18:26 pm
como dije despues de haber solucionado mas o menos los problemas con la libreria de colores aqui teneis el arbol encendiendose por lineas.
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5.  
  6.  
  7. void dibujar(int);
  8. void dibuja(int);
  9. void base(int,float);
  10.  
  11. int main()
  12. {
  13.    int n,m,j;
  14.    n=15;
  15.    dibujar(n);
  16.    j=5;
  17.    float b=n/(5.5);
  18.    base(j,b);
  19.  
  20. }
  21.  
  22. void dibujar(int num)
  23. {
  24.    int i;
  25.    int x;
  26.    int x2;
  27.  
  28.    for(i=0; i<num; i++)
  29.    {
  30.        for(x=0; x<=(num-i); x++)
  31.        {
  32.            printf(" ");
  33.        }
  34.        for(x2=0; x2<=(i*2); x2++)
  35.        {
  36.            if (i%3==0)
  37.            {
  38.             textcolor(WHITE);
  39.                cprintf("*");
  40.            }
  41.            else if (i%3==1)
  42.            {
  43.             textcolor(RED);
  44.                cprintf("*");
  45.            }
  46.            else
  47.            {
  48.             textcolor(GREEN);
  49.                cprintf("*");
  50.            }
  51.        }
  52.        printf("\n");
  53.    }
  54. }
  55.  
  56. void base(int num, float a)
  57. {
  58.    int i;
  59.    int x;
  60.    for(i=0; i<num; i++)
  61.    {
  62.        for(x=0; x<=(num*a); x++)
  63.        {
  64.            printf(" ");
  65.        }
  66.        textcolor(BROWN);
  67.        cprintf("*****");
  68.        printf("\n");
  69.    }
  70. Return 0;
  71. }
espero os sirva gracias y un saludo


Los códigos deben ir en etiquetas GeSHi