C语言如何实现一个闪烁的圣诞树
导读:本文共2044.5字符,通常情况下阅读需要7分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 效果图图1 圣诞树下面来看下源码,如下所示:#include<math.h>#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<windows.h>#include<stdbool.h>#defineN15... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。效果图
图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语言如何实现一个闪烁的圣诞树的详细内容,希望对您有所帮助,信息来源于网络。