C语言问题.详细如下.

来源:百度知道 编辑:UC知道 时间:2024/06/23 22:45:07
用的是tc编写.
在如下编译中遇到问题:
#define RIGHT 0*4d00
#define DOWN 0*5000
错误提示都为:
Possibly incorrect assignment in function Gamplay
那么就意味著RIGHT和DOWN的赋值有问题.那么正确的赋值应该是多少?

还有
If statement missing ) in function GamePlay
Misplaced else in function Gameplay
是什麽意思啊?
我编写的是一个贪吃蛇的游戏 所以有GamePlay.
DOWN RIGHT 是控制贪吃蛇运动方向的定义.

忘高手赐教!谢谢!

首先宏定义里我想你是要定义两个十六进制数,那么应该是0x而不是0*,另外后面那个错误显然是你的if语句括号不配对,这个错误同时也导致else不能与if配对。

#define LEFT 0x4b00 //0x开头的是十六进制
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b

GamePlay()函数里面应该是少了个),或者是else语句放错了地方,可以参考以下代码:

void GamePlay(char ch)
{
randomize();
food.isEaten=1;
snake.isDead=0;
snake.direction=1;/*初始方向向右移动*/
snake.x[0]=100;snake.y[0]=100;/*蛇头的初始位置,每个蛇身节点是10*10方格*/
snake.x[1]=110;snake.y[1]=100;
snake.node=2;/*蛇头只有2个方块*/
PrScore();
while(1)
{
while(!kbhit())
{
if(food.isEaten==1)
{
food.x=(rand()%400+60)/10*10;
food.y=(rand()%350+60)/10*10;
food.isEaten=0;/*蛇现在没有吃到事物的过程中*/
}
if(food.isEaten==0) /*绘制事物,用绿色方块表示*/
{
setcolor(