Advertisement
Guest User

christmas tree for helen

a guest
Dec 14th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.42 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <unistd.h>
  5.  
  6. #define RefRate 40000
  7. #define randomness 5
  8.  
  9. void clrscr()
  10. {
  11.     system("@cls||clear");
  12. }
  13.  
  14. void printRandLeaf()
  15. {
  16.     char leaftypes[5] = { '.', '*', '+', 'o', 'O' };
  17.     int temp = rand() % randomness;
  18.  
  19.     if (temp == 1)
  20.         printf("%c ", leaftypes[rand() % 5]);
  21.     else
  22.         printf("%c ", leaftypes[1]);
  23. }
  24.  
  25. void triangle(int f, int n, int toth)
  26. {
  27.     int i, j, k = 2 * toth - 2;
  28.  
  29.     for (i = 0; i < f - 1; i++)
  30.         k--;
  31.  
  32.     for (i = f - 1; i < n; i++) {
  33.  
  34.         for (j = 0; j < k; j++)
  35.             printf(" ");
  36.  
  37.         k = k - 1;
  38.  
  39.  
  40.         for (j = 0; j <= i; j++)
  41.             printRandLeaf();
  42.  
  43.         printf("\n");
  44.     }
  45. }
  46.  
  47. void printTree(int h)
  48. {
  49.     int start = 1, stop = 0, diff = 3;
  50.     while (stop < h + 1) {
  51.         stop = start + diff;
  52.         triangle(start, stop, h);
  53.         diff++;
  54.         start = stop - 2;
  55.     }
  56. }
  57.  
  58. void printLog(int n)
  59. {
  60.     int i, j, k = 2 * n - 4;
  61.  
  62.     for (i = 1; i <= 6; i++) {
  63.  
  64.         // space handler
  65.         for (j = 0; j < k; j++)
  66.             printf(" ");
  67.  
  68.         for (j = 1; j <= 6; j++)
  69.             printf("#");
  70.  
  71.         printf("\n");
  72.     }
  73. }
  74.  
  75. int main()
  76. {
  77.     srand(time(NULL));
  78.     int ht = 6;
  79.  
  80.  
  81.     while (1) {
  82.         clrscr();
  83.         printTree(ht);
  84.  
  85.         printLog(ht);
  86.         usleep(RefRate);
  87.     }
  88.  
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement