C语言如何实现一个闪烁的圣诞树(c语言,开发技术)

时间:2024-05-05 06:39:45 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

效果图

C语言如何实现一个闪烁的圣诞树

图1 圣诞树

下面来看下源码,如下所示:

#include<math.h>#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<windows.h>#include<stdbool.h>#defineN15charstr[]={'*','','@','','#','','\'','','$','','%','','&','','!'};voidcolor(inta){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}voidgetCoord(doubley,doublex){COORDpos={x,y};SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}voidhideCursor(){CONSOLE_CURSOR_INFOcursor={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor);}voidlayer(intx,inty,intnum,intcol){color(col);getCoord(x,y);intidx=rand()%N;printf("%c",str[idx]);for(intk=1;k<=num;++k){idx=rand()%N;getCoord(x+k-1,y);printf("%c",str[idx]);for(inti=1;i<=(k*2-1)/2;i++){getCoord(x+k-1,y-i);idx=rand()%N;printf("%c",str[idx]);getCoord(x+k-1,y+i);idx=rand()%N;printf("%c",str[idx]);}}}voidtriangle(intx,inty,intnum,intcol){getCoord(x,y);color(col);printf("*");for(inti=1;i<=num;++i){intx1=x+i;inty1=y-i;for(intj=0;j<i*2+1;++j){getCoord(x1,y1+j);printf("*");}}}voidtriangleRight(doublex,doubley,doublenum,doublecol){getCoord(x,y*2);color(col);printf("*");for(inti=1;i<=num;++i){doublex1=x-i;doubley1=y-i;for(intj=0;j<i*2+1;++j){getCoord(x1+j,y1*2);printf("*");}}}voidtriangleLeft(doublex,doubley,doublenum,doublecol){getCoord(x,y*2);color(col);printf("*");for(inti=1;i<=num;++i){doublex1=x-i;doubley1=y+i;for(intj=0;j<i*2+1;++j){getCoord(x1+j,y1*2);printf("*");}}}voidrectangle(intx,inty,inth,intw,intcol1,intcol2){color(col1);for(inti=0;i<=h;++i){for(intj=0;j<=w/2;++j){getCoord(x+i,y-j);if(i%3||j%2)printf("*");else{color(col2);printf("!");color(col1);}getCoord(x+i,y+j);if(i%3||j%2)printf("*");else{color(col2);printf("!");color(col1);}}}}intmain(){hideCursor();intcolTop=4;intcolMid=4;intcolEnd=13;while(true){colTop=colTop==4?9:4;triangleLeft(5,27.8,2,colTop);triangleRight(5,27.8,2,colTop);Sleep(100);layer(5,55,10,2);layer(9,55,16,2);layer(14,55,26,2);colMid=colMid==4?5:4;triangle(11,55,3,colMid);triangle(19,60,3,colMid);triangle(29,42,3,colMid);triangle(31,57,3,colMid);colEnd=colEnd==13?1:13;rectangle(40,55,15,18,6,colEnd);Sleep(200);}return0;}

上面便是圣诞树的简单实现,下面来说下原理:

函数 layer 画出树的层次,根据坐标来输出位置;

voidlayer(intx,inty,intnum,intcol)

函数 triangle 画出小三角形,作为点缀;

voidtriangle(intx,inty,intnum,intcol)

函数triangleRight 和triangleLeft 画出圣诞树顶部的蝴蝶结;

voidtriangleRight(doublex,doubley,doublenum,doublecol);voidtriangleLeft(doublex,doubley,doublenum,doublecol);

函数hideCursor 负责隐藏光标;

voidhideCursor()

函数getCoord 负责确定输出字符的位置;

voidgetCoord(doubley,doublex)

函数 color 负责设置输出的颜色;

voidcolor(inta)

主函数的原理如下:

voidcolor(inta)

主函数通过一个 while 循环,不断刷新圣诞树和圣诞树点缀的颜色。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:C语言如何实现一个闪烁的圣诞树的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Android中Activity生命周期调用的示例分析下一篇:

14 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18