여기서 흥미로운 질문을 보게 될 것입니다. 이 질문에서는 크리스마스 트리를 무작위로 인쇄하는 방법을 살펴보겠습니다. 결과적으로 트리는 크리스마스 트리 조명처럼 반짝일 것입니다.
크리스마스 트리를 인쇄하기 위해 다양한 크기의 피라미드를 인쇄하여 차례대로 배치합니다. 장식용 나뭇잎의 경우 주어진 문자 목록에서 임의의 문자가 인쇄됩니다. 높이와 무작위성은 조정 가능합니다.
트리가 생성된 후에는 전체 화면이 지워졌다가 다시 생성되기 때문에 깜박이는 나무처럼 보입니다.
#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] = { '.', '*', '+', 'o', 'O' }; //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 언어로 된 크리스마스 트리 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!