标题:求助啊,点的运动问题,在线=
取消只看楼主
guosheng1987
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-4-16
 问题点数:0 回复次数:2 
求助啊,点的运动问题,在线=

#include<stdio.h>
#include<graphics.h>

void print_point();
void point_move(int [],int []);

main()
{
int gdriver, gmode;
detectgraph(&gdriver, &gmode); /*自动测试硬件*/
getch();
initgraph(&gdriver, &gmode, "c:\\caic\\bgi");
/* 根据测试结果初始化图形*/


srand(time(NULL));
print_point();


getch();
closegraph();

}
void print_point() /* 函数打印屏幕上100个随机的点 */
{
int x,y,i;
int X[100],Y[100];

for(i = 0;i<100;i++)
{
x = rand()%1024;
y = rand()%768;


X[i] = x;
Y[i] = y;
putpixel(X[i],Y[i],15); /* 数组存放100个点的位置*/
}
point_move(X,Y);
}

void point_move(int X[100],int Y[100]) /* 100个点出现随机情况的运动 */
{
int m,n;
int i,t = 0;

while(t<10)
{
for(i = 0;i<100;i++) /*让100个点完成新的位置*/
{
switch(1) /*如过是横向移动的点,纵向不移动,反之一样方向随机*/
{

case 0:
{
m = rand()%1; /*0表示横向移动*/
if(!m) m = -1;
X[i] = X[i]+m;
}break;
case 1:
{
n = rand()%1; /*1表示纵向移动*/
if(n == 0) n = -1;
Y[i] = Y[i]+1;
}break;
}
}


sleep(1);
cleardevice(); /*清理屏幕*/


for(i = 0;i<100;i++)
putpixel(X[i],Y[i],15); /*打印新的位置的点 */

t++;
}
}
我想让所有点都向不同的方向运动,而且每一秒都会改变方向,那里写错了

2007-04-19 10:39
guosheng1987
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-4-16
得分:0 
补充我把这里改成了switch(rand()%1) 也是一样的 Y[i] = Y[i]+1;这也是我原来改的是Y[i] = Y[i]+n;

2007-04-19 10:41
guosheng1987
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-4-16
得分:0 
已经想出来了,把switch()语句换成了if语句就可以了
2007-04-19 10:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-133074-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.235825 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved