c语言流星雨的实现,求助呀,我c不太好,诸位大神帮帮忙啊
c语言流星雨的实现,求助呀,我c不太好,诸位大神帮帮忙啊下面是程序,还不完整,求大神补全,那个截图上的是要求,可能还有错的地方,求大神帮忙改正。要是您自个重新写也行呀#i...
c语言流星雨的实现,求助呀,我c不太好,诸位大神帮帮忙啊下面是程序,还不完整,求大神补全,那个截图上的是要求,可能还有错的地方,求大神帮忙改正。
要是您自个重新写也行呀
#include<stdio.h>
#include<stdlib.h> //调用random时需用
#include<conio.h>
#include<dos.h>
void main()
{
char screen[24][81];
struct chr
{ char ch; //character
int color,rank,line; //定义颜色 位置 速度
} star[10];
int i,j,k,flag,flag1=80;
for(i=0;i<=8;i++)
for(j=0;j<=79;j++) //输出天空
和地面
{
screen[i][j]=' ';
screen[i][80]='\0';
}
for(i=21;i<=23;i++)
{
for(j=0;j<=79;j++)
screen[i][j]='#';
screen[i][80]='\0';
}
clrscr();
textcolor(5);//**
for(i=0;i<=23;i++)
{ gotoxy(1,i+1);
cprintf("%s",screen[i]);
}
while(!kbhit()||flag1==0)
{
randomize();
for(k=0;k<10;k++) //用random函数随机决定星星的颜色位置 速度 {
star[k].ch=random(26)+'A';//控制星星的字符
star[k].rank=random(80)+1;//控制流星下落的位置
star[k].line=random(4)+1;//控制流星的速度
star[k].color=random(16)+1;//控制流星的颜色
}
flag=10;
for(k=0;k<=9;k++)
{
gotoxy(star[k].rank,1);
textcolor(star[k].color);
cprintf("%c",star[k].ch);
}
delay(500);//延迟了500秒
gotoxy(1,1);//将字符屏幕的光标移动到1,1处
//clreol();控制屏幕上方星星的下落,如去掉它会在上方的屏幕上出现满天的星星
while(flag>0)//控制流星的达到下方后的运行情况,流星和#一起消失 {
for(i=21;i<=24;i++)
for(k=0;k<=9;k++)
{
if(1+star[k].line>=i)
{
gotoxy(star[k].rank,i);
printf(" ");
flag--;
flag1--;
}else
{
gotoxy(star[k].rank,1+star[k].line);
textcolor(star[k].color);
cprintf("%c",star[k].ch);
}
}
delay(500);
for(k=0;k<=9;k++)
{
gotoxy(star[k].rank,1+star[k].line);
printf(" ");
star[k].line=2*star[k].line;
}
} //while( flag>0)
} //while(!kbhit()...
} 展开
要是您自个重新写也行呀
#include<stdio.h>
#include<stdlib.h> //调用random时需用
#include<conio.h>
#include<dos.h>
void main()
{
char screen[24][81];
struct chr
{ char ch; //character
int color,rank,line; //定义颜色 位置 速度
} star[10];
int i,j,k,flag,flag1=80;
for(i=0;i<=8;i++)
for(j=0;j<=79;j++) //输出天空
和地面
{
screen[i][j]=' ';
screen[i][80]='\0';
}
for(i=21;i<=23;i++)
{
for(j=0;j<=79;j++)
screen[i][j]='#';
screen[i][80]='\0';
}
clrscr();
textcolor(5);//**
for(i=0;i<=23;i++)
{ gotoxy(1,i+1);
cprintf("%s",screen[i]);
}
while(!kbhit()||flag1==0)
{
randomize();
for(k=0;k<10;k++) //用random函数随机决定星星的颜色位置 速度 {
star[k].ch=random(26)+'A';//控制星星的字符
star[k].rank=random(80)+1;//控制流星下落的位置
star[k].line=random(4)+1;//控制流星的速度
star[k].color=random(16)+1;//控制流星的颜色
}
flag=10;
for(k=0;k<=9;k++)
{
gotoxy(star[k].rank,1);
textcolor(star[k].color);
cprintf("%c",star[k].ch);
}
delay(500);//延迟了500秒
gotoxy(1,1);//将字符屏幕的光标移动到1,1处
//clreol();控制屏幕上方星星的下落,如去掉它会在上方的屏幕上出现满天的星星
while(flag>0)//控制流星的达到下方后的运行情况,流星和#一起消失 {
for(i=21;i<=24;i++)
for(k=0;k<=9;k++)
{
if(1+star[k].line>=i)
{
gotoxy(star[k].rank,i);
printf(" ");
flag--;
flag1--;
}else
{
gotoxy(star[k].rank,1+star[k].line);
textcolor(star[k].color);
cprintf("%c",star[k].ch);
}
}
delay(500);
for(k=0;k<=9;k++)
{
gotoxy(star[k].rank,1+star[k].line);
printf(" ");
star[k].line=2*star[k].line;
}
} //while( flag>0)
} //while(!kbhit()...
} 展开
2个回答
2017-06-19
更多追问追答
追问
嗯,这个也试过了,有个函数不行,是graphics.h,我们是在code block上运行的
追答
在vc++上运行,下载文章中的那个插件安装即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询