⽤C语⾔实现圣诞树(简易版+进阶版)
⽬录
前⾔
初学者版:
初学者版2
以下是进阶版,更炫:
总结
前⾔
圣诞节快到了,这是我到CSDN度过的第⼀个圣诞节,也是我学习计算机的第⼀个圣诞节,为了让它更有意义,我呕⼼沥⾎,⾃⼰打了两版
初学者版,再在⽹上找了⼀版进阶版,都⼗分精美,废话少说,代码奉上:
初学者版:
#include
#include
#include
voidcolor(intx)
{
if(x>=0&&x<=15)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
el
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
}
voidt_Christmastree(char*p){
inti,j,n=5,s;
color(2);
printf("n");
for(i=1;i<=n;i++){
if(i==1){
for(j=1;j<=i;j++){
for(s=1;s<=n+11-j;s++){
printf("");
}
for(s=1;s<=2*j-1;s++){
printf("*");
}
printf("n");
}
}
el{
for(j=i;j<=i+1;j++){
for(s=1;s<=n+11-j;s++)
{
printf("");
}
for(s=1;s<=2*j-1;s++)
{
if(s==n-3){
color(11);
printf("%c",p[0]);
color(2);
continue;
}
if(s==n-1){
color(5);
printf("%c",p[1]);
color(2);
continue;
}
if(s==n+1){
color(4);
printf("%c",p[2]);
color(2);
continue;
}
if(s==n+3){
color(1);
printf("%c",p[3]);
color(2);
continue;
}
if(s==n+5){
color(12);
printf("%c",p[4]);
color(2);
continue;
}
printf("*");
}
printf("n");
}
}
}
color(6);
for(s=1;s<=n+11;s++)
{
if(s==n+9)
{
printf("|||||n");
color(15);
printf("%c%c%c%c%c",p[5],p[5],p[5],p[5],p[5]);
continue;
}
printf("");
}
printf("n");
for(s=1;s<=36;s++)
{
if(s==n+11)
{
printf("V");
continue;
}
printf("=");
}
}
intmain(){
intt=0;
color(11);
printf("⾸先祝这个电脑前的⼩可爱圣诞快乐(~ ̄▽ ̄)~");printf("n");
printf("接下来有⼏个选项需要您的选择,你需要我的作者给您画的圣诞树还是⾃⼰做⼀个呢?");
printf("n");
printf("看作者的选0,如果想⾃⼰做呢选1,祝您开⼼o(*^@^*)o");
printf("您的选择是:");
scanf("%d",&t);
if(t==0){
charl[6]="HAPPYU",m[100]="MerryChristmas.";
t_Christmastree(l);
color(3);
printf("nIwanttosay:n");
puts(m);
printf("Madebyzhanduanwanfeng.");
}
if(t==1){
chark[6],w[100]="MerryChristmas.";
printf("请选择您要隐藏的字符,只有六个字符哦,可以有特殊含义(IMISSU,ILOVEU等哦)后⾯还可加⼀句你想说的话,与前⾯字符⽤空格隔开,字符间不要加空格哦>_<:");
scanf("%s",k);
gets(w);
t_Christmastree(k);
color(3);
printf("nIwanttosay:n");
puts(w);
printf("Madebyzhanduanwanfeng.");
}
return0;
}
这是效果图:
初学者版2
⽐前⼀个多了雪花,复杂了些。
#include
#include
#include
voidcolor(intx)
{
if(x>=0&&x<=15)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
el
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
}
voidt_Christmastree(char*p){//打印圣诞树和雪景的函数
inti,j,n=5,s,y=0;
color(2);
printf("n");
for(i=1;i<=n;i++){
y++;
if(i==1){//第⼀层是⼀个*,之后都是梯形
for(j=1;j<=i;j++){
for(s=1;s<=36;s++){
if((s<=n+11-j)||(s>=17)){
if(s%(i+3)==i){//雪景
color(15);
putchar('*');
color(2);
}
el
printf("");
}
elif(s==n+11){
putchar('*');
}
}
printf("n");
}
}
el{
for(j=i;j<=i+1;j++){//打印梯形
for(s=1;s<=36;s++)
{
if((s<=n+11-j)||(s>=n+11+j)){
if(s%(i+3)==i){//雪景
color(15);
putchar('*');
color(2);
}
el
printf("");
}
el{
if(s==n+2+y){//这⼏个if函数都是⽤来打印圣诞树上的变⾊字符
color(11);
printf("%c",p[0]);
color(2);
continue;
}
elif(s==n+4+y){
color(5);
printf("%c",p[1]);
color(2);
continue;
}
elif(s==n+6+y){
color(4);
printf("%c",p[2]);
color(2);
continue;
}
elif(s==n+8+y){
color(1);
printf("%c",p[3]);
color(2);
continue;
}
elif(s==n+10+y){
color(12);
printf("%c",p[4]);
color(2);
continue;
}
el
printf("*");
}
}
printf("n");
}
}
}
color(6);
for(s=1;s<=34;s++)//树桩
{
if(s==n+9){
color(15);
printf("*****");
color(6);
printf("|||||");
color(15);
printf("*****n");
printf("*****%c%c%c%c%c*****",p[5],p[5],p[5],p[5],p[5]);
continue;
}
/*el{
color(15);
printf("*");
//color(6);
}*/
}
printf("n");
for(s=1;s<=34;s++){
if(s==n+11){
printf("V");
continue;
}
el
printf("=");
}
}
intmain(){
intt=0;
color(11);
printf("⾸先祝这个电脑前的⼩可爱圣诞快乐(~ ̄▽ ̄)~");printf("n");
printf("接下来有⼏个选项需要您的选择,你需要我的作者给您画的圣诞树还是⾃⼰做⼀个呢?");
printf("n");
printf("看作者的选0,如果想⾃⼰做呢选1,祝您开⼼o(*^@^*)o");
printf("您的选择是:");
scanf("%d",&t);
if(t==0){
charl[6]="HAPPYU",m[100]="MerryChristmas.";
t_Christmastree(l);
color(3);
printf("nIwanttosay:n");
puts(m);
printf("Madebyzhanduanwanfeng.");
}
if(t==1){
chark[6],w[100]="MerryChristmas.";
printf("请选择您要隐藏的字符,只有六个字符哦,可以有特殊含义(IMISSU,ILOVEU等哦)后⾯还可加⼀句你想说的话,与前⾯字符⽤空格隔开,字符间不要加空格哦>_<:");
scanf("%s",k);
gets(w);
t_Christmastree(k);
color(3);
printf("nIwanttosay:n");
puts(w);
printf("Madebyzhanduanwanfeng.");
}
return0;
}
这是效果图:
以下是进阶版,更炫:
#include
#include
#include
#include
#definePI3.
#defineTpx+scale*r*cosf(theta),py+scale*r*sin(theta)
floatsx,sy;
floatsdCircle(floatpx,floatpy,floatr){
floatdx=px-sx,dy=py-sy;
returnsqrtf(dx*dx+dy*dy)-r;
}
floatopUnion(floatd1,floatd2){
returnd1
}
floatf(floatpx,floatpy,floattheta,floatscale,intn){
floatd=0.0f;
for(floatr=0.0f;r<0.8f;r+=0.02f)
d=opUnion(d,sdCircle(T,0.05f*scale*(0.95f-r)));
if(n>0)
for(intt=-1;t<=1;t+=2){
floattt=theta+t*1.8f;
floatss=scale*0.9f;
for(floatr=0.2f;r<0.8f;r+=0.1f){
d=opUnion(d,f(T,tt,ss*0.5f,n-1));
ss*=0.8f;
}
}
returnd;
}
intribbon(){
floatx=(fmodf(sy,0.1f)/0.1f-0.5f)*0.5f;
returnsx>=x-0.05f&&sx<=x+0.05f;
}
intmain(intargc,char*argv[]){
intn=argc>1?atoi(argv[1]):3;
floatzoom=argc>2?atof(argv[2]):1.0f;
for(sy=0.8f;sy>0.0f;sy-=0.02f/zoom,putchar('n'))
for(sx=-0.35f;sx<0.35f;sx+=0.01f/zoom){
if(f(0,0,PI*0.5f,1.0f,n)<0.0f){
if(sy<0.1f){
putchar('.');
}el{
if(ribbon()){
putchar('=');
}el{
putchar("............................#j&o"[rand()%32]);
}
}
}el{
putchar('');
}
}
Sleep(1000);
printf("nnn");
for(size_ti=0;i<40;i++){
putchar('');
}
//_sleep(5000);
printf("MerryChristmas,baby~!n");
Sleep(500);
for(size_ti=0;i<40;i++){
putchar('');
}
printf("Neversaydie.n");
Sleep(500);
for(size_ti=0;i<40;i++){
putchar('');
}
printf("2016/12/24,最爱你的UP主n");
getchar();
}
效果图就不放了,感兴趣可以试试,很炫哦。
总结
到此这篇关于⽤C语⾔实现圣诞树(简易版+进阶版)的⽂章就介绍到这了,更多相关C语⾔圣诞树内容请搜索以前的⽂章或继续浏览下⾯的相
关⽂章希望⼤家以后多多⽀持!
本文发布于:2023-03-05 10:28:58,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1677983338144959.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:画圣诞树.doc
本文 PDF 下载地址:画圣诞树.pdf
留言与评论(共有 0 条评论) |