c语言实现数字雨

控制生成的数字为0和1两个数

st[i].ch = rand()%(49-47)+48;


gotoxy函数确定ch在屏幕中出现的位置,set_color函数修改ch的颜色,最后输出设置好的ch

gotoxy(st[i].x,st[i].y);
set_color(0x2);
putchar(st[i].ch);

#include<stdio.h>
#include<time.h>
#include<windows.h>
typedef struct
{
	int x,y;
	char ch;
}STU;
STU st[100];
//出现位置   

void gotoxy(int x, int y)  
{  
    HANDLE hout;  
    COORD pos;  
    pos.X = x;  
    pos.Y = y;  
	
    hout = GetStdHandle(STD_OUTPUT_HANDLE);  
    SetConsoleCursorPosition(hout, pos);  
}  

/*隐藏光标*/  
void show_cursor(int hide)  
{  
    CONSOLE_CURSOR_INFO cciCursor;  
    HANDLE hout;  
	
    hout = GetStdHandle(STD_OUTPUT_HANDLE);  
    if(GetConsoleCursorInfo(hout, &cciCursor))  
    {  
        cciCursor.bVisible = hide;  
        SetConsoleCursorInfo(hout, &cciCursor);  
    }  
}  

/*设置颜色*/  
void set_color(int color)  
{  
	
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);  
}  


main()
{
	int i,j;
	show_cursor(0);
	srand(time(NULL));
	//初始化结构体 
	for (i=0;i<100;i++)
	{
		st[i].x = rand()%80;
		st[i].y = rand()%20;
		st[i].ch = rand()%(49-47)+48;
	}
	while (1)
	{
		for (i=0;i<100;i++)
		{
			gotoxy(st[i].x,st[i].y);
			set_color(0x2);
			putchar(st[i].ch);
			gotoxy(st[i].x,st[i].y-5);
			putchar(' ');
			st[i].y++;
			st[i].ch = rand()%(49-47)+48;
			if (st[i].y-5>=18)
			{
				gotoxy(st[i].x,st[i].y-1);
				putchar(' ');
				gotoxy(st[i].x,st[i].y-2);
				putchar(' ');
				gotoxy(st[i].x,st[i].y-3);
				putchar(' ');
				gotoxy(st[i].x,st[i].y-4);
				putchar(' ');
				gotoxy(st[i].x,st[i].y-4);
				putchar(' ');
			}
			if (st[i].y > 23)
			{
				st[i].x = rand()%80;
				st[i].y = rand()%20;
			}
			gotoxy(st[i].x,st[i].y);
			set_color(0xA);
			putchar(st[i].ch);
		}
		Sleep(120);
	}
}


  • 18
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值