[求助]笑脸移动游戏,有个小毛病找不出来
程序代码:
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
#include <stdio.h>
#include <conio.h>
int main()
{
int key,x,y;
x=0,y=0;
while((key=bioskey(0))){
switch(key){
case DOWN: {clrscr();++y;if(y>25) y=25;gotoxy(x,y);printf(\"%c\",2);break;}
case UP:{clrscr();--y;if(y<0) y=0;gotoxy(x,y);printf(\"%c\",2);break;}
case RIGHT:{clrscr();++x;if(x>80) x=80;gotoxy(x,y);printf(\"%c\",2);break;}
case LEFT:{clrscr();--x;if(x<0) x=0;gotoxy(x,y);printf(\"%c\",2);break;}
default:break;
}
}
return 0;
}
在第一行点上为什么老回到起点啊??
----------------解决方案--------------------------------------------------------
TURBOC编译的
----------------解决方案--------------------------------------------------------
以下是引用maxlea在2006-12-22 23:47:01的发言:
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
#include <stdio.h>
#include <conio.h>
int main()
{
int key,x,y;
x=1,y=1;
while((key=bioskey(0))){
switch(key){
case DOWN: {clrscr();++y;if(y>25) y=25;gotoxy(x,y);printf(\"%c\",2);break;}
case UP:{clrscr();--y;if(y<0) y=0;gotoxy(x,y);printf(\"%c\",2);break;}
case RIGHT:{clrscr();++x;if(x>80) x=80;gotoxy(x,y);printf(\"%c\",2);break;}
case LEFT:{clrscr();--x;if(x<0) x=0;gotoxy(x,y);printf(\"%c\",2);break;}
default:break;
}
}
return 0;
在第一行点上为什么老回到起点啊??
程序代码:
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
#include <stdio.h>
#include <conio.h>
int main()
{
int key,x,y;
x=1,y=1;
while((key=bioskey(0))){
switch(key){
case DOWN: {clrscr();++y;if(y>25) y=25;gotoxy(x,y);printf(\"%c\",2);break;}
case UP:{clrscr();--y;if(y<0) y=0;gotoxy(x,y);printf(\"%c\",2);break;}
case RIGHT:{clrscr();++x;if(x>80) x=80;gotoxy(x,y);printf(\"%c\",2);break;}
case LEFT:{clrscr();--x;if(x<0) x=0;gotoxy(x,y);printf(\"%c\",2);break;}
default:break;
}
}
return 0;
}
在第一行点上为什么老回到起点啊??
坐标是从(1,1)开始的
----------------解决方案--------------------------------------------------------
如果脸在第一行的非最左边点上,会自动回到最左边,怎么处理?以1,1开头也是这样的
----------------解决方案--------------------------------------------------------
怎么会到非最左边呢 开始设置不是1,1吗
还有case中的判断也得改成if(x<1)x=1; if(y<1)y=1;
最好在定义下加个清屏
就这点了,没发现其他东西
----------------解决方案--------------------------------------------------------
还有你这个程序怎么退出呢
----------------解决方案--------------------------------------------------------
CTRRL+BREAK嘿嘿
----------------解决方案--------------------------------------------------------