> 백엔드 개발 > C++ > C 언어로 된 크리스마스 트리 프로그램

C 언어로 된 크리스마스 트리 프로그램

WBOY
풀어 주다: 2023-09-13 09:05:01
앞으로
2215명이 탐색했습니다.

여기서 흥미로운 질문을 보게 될 것입니다. 이 질문에서는 크리스마스 트리를 무작위로 인쇄하는 방법을 살펴보겠습니다. 결과적으로 트리는 크리스마스 트리 조명처럼 반짝일 것입니다.

크리스마스 트리를 인쇄하기 위해 다양한 크기의 피라미드를 인쇄하여 차례대로 배치합니다. 장식용 나뭇잎의 경우 주어진 문자 목록에서 임의의 문자가 인쇄됩니다. 높이와 무작위성은 조정 가능합니다.

트리가 생성된 후에는 전체 화면이 지워졌다가 다시 생성되기 때문에 깜박이는 나무처럼 보입니다.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#define REFRESH_RATE 40000
#define RANDOM_NESS 5 // The higer value indicates less random
void clear_screen() {
   system("@cls||clear");
}
void display_random_leaf() {
   char type_of_leaves[5] = { &#39;.&#39;, &#39;*&#39;, &#39;+&#39;, &#39;o&#39;, &#39;O&#39; }; //these are the leaf types
   int temp = rand() % RANDOM_NESS;
   if (temp == 1)
      printf("%c ", type_of_leaves[rand() % 5]); //if temp is 1, then use other leaves
   else
      printf("%c ", type_of_leaves[1]); //otherwise print *
}
void tree_triangle(int f, int n, int toth) {
   int i, j, k = 2 * toth - 2;
   for (i = 0; i < f - 1; i++)
      k--;
   for (i = f - 1; i < n; i++) { //i will point the number of rows
      for (j = 0; j < k; j++) // Used to put spaces
      printf(" ");
         k = k - 1;
      for (j = 0; j <= i; j++)
         display_random_leaf();
      printf("</p><p>");
   }
}
void display_tree(int h) {
   int start = 1, end = 0, diff = 3;
   while (end < h + 1) {
      end = start + diff;
      tree_triangle(start, end, h);
      diff++;
      start = end - 2;
   }
}
void display_log(int n) { //print the log of the tree
   int i, j, k = 2 * n - 4;
   for (i = 1; i <= 6; i++) {
      for (j = 0; j < k; j++)
         printf(" ");
      for (j = 1; j <= 6; j++)
         printf("#");
      printf("</p><p>");
   }
}
main() {
   srand(time(NULL));
   int ht = 15;
   while (1) {
      clear_screen();
      display_tree(ht);
      display_log(ht);
      usleep(REFRESH_RATE); //use sleep before replacing
   }
}
로그인 후 복사

출력

C 언어로 된 크리스마스 트리 프로그램

위 내용은 C 언어로 된 크리스마스 트리 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿