arbol de navidad en C

Iniciado por moremo, 30 Diciembre 2016, 20:17 PM

0 Miembros y 1 Visitante están viendo este tema.

moremo

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


void dibujar(int);
void dibuja(int);
void base(int,float);

int main(){
   int n,m,j;
system ("COLOR 05");
n=15;
       dibujar(n);
       j=5;
       float b=n/(5.5);
       base(j,b);
       system("pause");

}

void dibujar(int num){
   int i;
   int x;
   int x2;
   
   for(i=0;i<num;i++){
       for(x=0;x<=(num-i);x++){
           printf(" ");
       }
       for(x2=0;x2<=(i*2);x2++){
           printf("*");
       }
       printf("\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("*****");
       printf("\n");
   }

}


Los códigos deben ir en etiquetas GeSHi

peib0l

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 ;)


    #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.

moremo

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

moremo

#3
como dije despues de haber solucionado mas o menos los problemas con la libreria de colores aqui teneis el arbol encendiendose por lineas.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>


void dibujar(int);
void dibuja(int);
void base(int,float);

int main()
{
   int n,m,j;
   n=15;
   dibujar(n);
   j=5;
   float b=n/(5.5);
   base(j,b);

}

void dibujar(int num)
{
   int i;
   int x;
   int x2;

   for(i=0; i<num; i++)
   {
       for(x=0; x<=(num-i); x++)
       {
           printf(" ");
       }
       for(x2=0; x2<=(i*2); x2++)
       {
           if (i%3==0)
           {
            textcolor(WHITE);
               cprintf("*");
           }
           else if (i%3==1)
           {
            textcolor(RED);
               cprintf("*");
           }
           else
           {
            textcolor(GREEN);
               cprintf("*");
           }
       }
       printf("\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(" ");
       }
       textcolor(BROWN);
       cprintf("*****");
       printf("\n");
   }
Return 0;
}

espero os sirva gracias y un saludo


Los códigos deben ir en etiquetas GeSHi