各位好: 请帮我看看下面的程序怎么回事:
#include<graphics.h>
#include<time.h>
#include<stdlib.h>
#include<dos.h>
#include<conio.h>
struct menu{
int left,top,right,bottom;
};
struct menu num={100,100,110,110}; file://主人公结构
void renew_appear(void); file://在屏幕上随机出现一个食物
int i,j;
int main(void)
{
char ch;
int gdriver=DETECT,gmode,i,j;
srand(time(NULL));
initgraph(&gdriver,&gmode,"c\\tc");
renew_appear();
setfillstyle(1,2);
bar(num.left,num.top,num.right,num.bottom);
while(1)
{
if(kbhit())
{
ch=getch();
if(ch==27)
break;
if(ch==119) file://向上走
{
setfillstyle(1,0);
bar(num.left,num.top,num.right,num.bottom);
setfillstyle(1,2);
num.top=num.top-10;
num.bottom=num.bottom-10;
bar(num.left,num.top,num.right,num.bottom);
}
if(ch==115) file://向下走
{
setfillstyle(1,0);
bar(num.left,num.top,num.right,num.bottom);
setfillstyle(1,2);
num.top=num.top+10;
num.bottom=num.bottom+10;
bar(num.left,num.top,num.right,num.bottom);
}
if(ch==97) file://向左走
{
setfillstyle(1,0);
bar(num.left,num.top,num.right,num.bottom);
setfillstyle(1,2);
num.left=num.left-10;
num.right=num.right-10;
bar(num.left,num.top,num.right,num.bottom);
}
if(ch==100) file://向右走
{
setfillstyle(1,0);
bar(num.left,num.top,num.right,num.bottom);
setfillstyle(1,2);
num.left=num.left+10;
num.right=num.right+10;
bar(num.left,num.top,num.right,num.bottom);
}
if(num.left==i && num.top==j && num.right==i+10 && num.bottom==j+10) file://当两者相与时
{
setfillstyle(1,0);
bar(i,j,i+10,j+10);
renew_appear(); file://重新出现物体
}
}//if
}//while
return 0;
}//main
void renew_appear(void)
{
i=100+rand()%100;
i=i/10*10;
j=100+rand()%100;
j=j/10*10;
setfillstyle(1,3);
bar(i,j,i+10,j+10);
}
以上程序为什么当两者相与后不能出现另一个物体呢!
求助!问题!