大学时写的一些小程序-5(c写的圆碰撞程序)

#include<graphics.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define NUM 5
#define XSPED 2
#define YSPED 2
#define SHUAX 20
#define BAJ 20
main()
{
char *p="welcome to circle Moving system";
int gdriver,gmode,i,j;
int xloc[NUM],yloc[NUM],cot=0,js,xs[NUM],ys[NUM];
gdriver=DETECT;
initgraph(&gdriver,&gmode,"c:\\tc");
setbkcolor(GREEN);
setcolor(RED);
cleardevice();
settextstyle(0,0,2);
sleep(2);
outtextxy(100,140,p);
sleep(2);
outtextxy(120,180,"you can change circle number");
sleep(2);
outtextxy(240,240,"Made by lu");
sleep(2);
outtextxy(210,290,"press any key!");
getch();
cleardevice();
for(i=0;i<NUM;i++)
{xs[i]=XSPED;ys[i]=YSPED;
xloc[i]=random(560)+30;
yloc[i]=random(350)+30;
}

setfillstyle(SOLID_FILL,WHITE);
setcolor(YELLOW);

while(1)
{
cleardevice();
setcolor(YELLOW);
line(30,30,600,30);
line(600,30,600,400);
line(600,400,30,400);
line(30,400,30,30);
setcolor(RED);
for(i=0;i<NUM;i++)
{
circle(xloc[i],yloc[i],BAJ);
delay(1200);
if(sqrt(pow((xloc[0]-xloc[1]),2)+pow((yloc[0]-yloc[1]),2))<=2*BAJ||
sqrt(pow((xloc[0]-xloc[2]),2)+pow((yloc[0]-yloc[2]),2))<=2*BAJ||
sqrt(pow((xloc[0]-xloc[3]),2)+pow((yloc[0]-yloc[3]),2))<=2*BAJ||
sqrt(pow((xloc[0]-xloc[4]),2)+pow((yloc[0]-yloc[4]),2))<=2*BAJ||
sqrt(pow((xloc[1]-xloc[2]),2)+pow((yloc[1]-yloc[2]),2))<=2*BAJ||
sqrt(pow((xloc[1]-xloc[3]),2)+pow((yloc[1]-yloc[3]),2))<=2*BAJ||
sqrt(pow((xloc[1]-xloc[4]),2)+pow((yloc[1]-yloc[4]),2))<=2*BAJ||
sqrt(pow((xloc[2]-xloc[3]),2)+pow((yloc[2]-yloc[3]),2))<=2*BAJ||
sqrt(pow((xloc[2]-xloc[4]),2)+pow((yloc[2]-yloc[4]),2))<=2*BAJ||
sqrt(pow((xloc[3]-xloc[4]),2)+pow((yloc[3]-yloc[4]),2))<=2*BAJ)
{ys[i]=-ys[i];xs[i]=-xs[i];cot++;}

if(xloc[i]<=50||xloc[i]>=580)
{xs[i]=-xs[i];cot++; }
if(yloc[i]<=50||yloc[i]>=380)
{ ys[i]=-ys[i];cot++;}

xloc[i]+=xs[i];
yloc[i]+=ys[i];

}
}

getch();

}

 

转载于:https://www.cnblogs.com/ujnlu/archive/2009/12/11/1622023.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值