圣诞快乐(C语言圣诞树程序)

因为圣诞节就在门口,是时候用程序员的方式庆祝了。让我们用C建造一棵装饰性的圣诞树。

null

要打印圣诞树,我们正在打印 金字塔 大小不一,一个比另一个小。 对于装饰,a 随机的 每个位置都打印字符。

高度和随机性可以调整。这是一帧又一帧的重复,给人一个真实事件的错觉。

例子: 图片[1]-圣诞快乐(C语言圣诞树程序)-yiteyi-C++库

让我们看看代码。

// C program to print a  Christmas tree
// It is recommended is try it with a desktop
// compiler like CodeBlocks.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#define RefRate 40000
#define randomness 5 // high means less random
// Clear the shell
void clrscr()
{
system ( "@cls||clear" );
}
// Print a random character giving preference
// to *
void printRandLeaf()
{
char leaftypes[5] = { '.' , '*' , '+' , 'o' , 'O' };
int temp = rand () % randomness;
// Giving preference to *
if (temp == 1)
printf ( "%c " , leaftypes[ rand () % 5]);
else
printf ( "%c " , leaftypes[1]);
}
void triangle( int f, int n, int toth)
{
int i, j, k = 2 * toth - 2;
for (i = 0; i < f - 1; i++)
k--;
// number of rows
for (i = f - 1; i < n; i++) {
// space handler
for (j = 0; j < k; j++)
printf ( " " );
// decrementing k after each loop
k = k - 1;
// number of columns, printing stars
for (j = 0; j <= i; j++)
printRandLeaf();
printf ( "" );
}
}
// Prints multiple triangles
void printTree( int h)
{
int start = 1, stop = 0, diff = 3;
while (stop < h + 1) {
stop = start + diff;
triangle(start, stop, h);
diff++;
start = stop - 2;
}
}
// Prints bottom part.
void printLog( int n)
{
int i, j, k = 2 * n - 4;
for (i = 1; i <= 6; i++) {
// space handler
for (j = 0; j < k; j++)
printf ( " " );
for (j = 1; j <= 6; j++)
printf ( "#" );
printf ( "" );
}
}
// Driver code
int main()
{
srand ( time (NULL));
int ht = 6;
printf ( "*********MERRY CHRISTMAS*********" );
// refresh loop
while (1) {
clrscr();
printTree(ht);
printLog(ht);
usleep(RefRate);
}
return 0;
}


© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享