首页 > 作文

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

更新时间:2023-04-04 07:38:13 阅读: 评论:0

圣诞节来啦!看到很多小伙伴用各种语言画出了圣诞树,于是就想用 c 语言来画一颗圣诞树,有点粗糙,下面先来看一下效果图吧!

图1 圣诞树

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

#include <math.h>#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <windows.h>#include <stdbool.h> #define n 15char str[] = {'*', ' ', '@', ' ', '#', ' ', '\'',  ' ', '$', ' ', '%', ' ', '&', ' ', '!'}; void color(int a){    tconsoletextattribute(getstdhandle(std_output_handle), a);} void getcoord(double y, double x){    coord pos = { x,y };    tconsolecursorposition(getstdhandle(std_output_handle), pos);} void hidecursor(){    console_cursor_info cursor= { 1, 0 };    tconsolecursorinfo(getstdhandle(std_output_handle), &cursor);} void layer(int x, int y, int nu生命的品质m, int col) {    color(col);    getcoord(x, y);    int idx = rand()%n;    printf("%c", str[idx]);    for(int k = 1; k <= num; ++k) {        idx = rand()%n;        getcoord(x + k - 1, y);        printf奇门遁甲 电影 2017("%c", str[idx]);        for(int i = 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]);        }    } } void triangle(int x, int y, int num, int col) {    getcoord(x, y);    color(col);    printf("*");     for(int i = 1; i <= num; ++i) {            int x1 = x + i;            int y1 = y - i;        for(int j = 0; j < i * 2 + 1; ++j) {            getcoord(x1, y1 + j);            printf("*");         }    }} void triangleright(double x, double y, double num, double col) {    getcoord(x, y*2);    color(col);    printf("*");     for(int i = 1; i <= num; ++i) {            double x1 = x - i;            double y1 = y - i;        for(int j = 0; j < i * 2 + 1; ++j) {            getcoord(x1 + j, y1 * 2);            printf("*");         }    }} void triangleleft(double x, double y, double num, double col) {    getcoord(x, y*2);    color(col);    printf("*");    for(int i = 1; i <=挽留感情 num; ++i) {            double x1 = x - i;            double y1 = y + i;        for(int j = 0; j < i * 2 + 1; ++j) {            getcoord(x1 + j, y1 * 2);            printf("*");         }    }} void rectangle(int x, int y, int h, int w, int col1, int col2) {    color(col1);    for(int i = 0; i <= h; ++i) {        for(int j = 0; j <= w/2; ++j) {            getcoord(x + i, y - j);            if(i % 3 || j % 2)                printf("*");            el {                color(col2);                printf("!");                color(col1);            }                            getcoord(x + i, y + j);            if(i % 3 || j % 2)                printf("*");            el {                color(col2);                printf("!");                color(col1);            }                    }    }} int main() {    hidecursor();    int coltop = 4;    int colm营销和销售的区别id = 4;    int colend = 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);    }    return 0;}

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

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

void layer(int x, int y, int num, int col) 

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

void triangle(int x, int y, int num, int col)

函数triangleright 和triangleleft 画出圣诞树顶部的蝴蝶结;

void triangleright(double x, double y, double num, double col);void triangleleft(double x, double y, double num, double col);

函数hidecursor 负责隐藏光标;

void hidecursor()

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

void getcoord(double y, double x)

函数 color 负责设置水土流失治理措施输出的颜色;

void color(int a)

主函数的原理如下:

void color(int a)

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

本文发布于:2023-04-04 07:38:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/96f9465b4333229a703bdfbc9fddc75d.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C语言实现一个闪烁的圣诞树.doc

本文 PDF 下载地址:C语言实现一个闪烁的圣诞树.pdf

下一篇:返回列表
标签:圣诞树   函数   画出   点缀
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图