python贪吃蛇游戏无法运行_无法执行的贪吃蛇游戏代码,求大神帮忙改动!

#include

#include

#include

#include

#include //使用当前时间做种子

enum dir {up,down,left,right}; //枚举类型enum dir //围墙

class Fence

{

public:

void initFence();

void OutputF();

public:

char game[20][20];

} f; //定义对象 //画框框

void Fence::lnitFence()

{

for (int i=0; i<20; i++)

for (int j=0; j<20; j++)

{

if (i==0||i==19||j==0||j==19)

game[i][j]='*';

else

game[i][j]=' ';

}

} //显示框框

void Fence::OutputF()

{

for (int i=0; i<20; i++)

{

for (int j=0; j<20; j++)

cout<

cout<

}

} //蛇结点

class SnakeNode

{

private:

int x,y;

SnakeNode *prior,*next;

public:

void add_head(int x,int y)

int get_x();

int get_y();

void delete_tail();

}

*head=NULL,*tail=NULL; //插入头结点

void SnakeNode::add_head(int x,int y)

{

SnakeNode *q=new SnakeNode;

q->x=x;

q->y=y;

q->next=head;

q->prior=NULL;

if (head)

head->prior=q;

head=q;

if (!tail)

tail=head;

f.game[x][y]='*'; //f对象能够在定义Fence类时定义。且Fnce类在SnakeNode类前定义

}

int SnkeNode::get_x()

{

return x;

}

int SnakeNode::get_y()

{

return y;

} //删除尾结点

void SnakeNode::delete_tail()

{

SnakeNode *p=tail;

f.game[tail->get_x()][tail->get_y()]=' '; //把尾结点的坐标表示的'*'置为空格;

if (tail==head)

tail=head=NULL;

else

{

tail=tail->prior;

tail=next=NULL;

}

delete p;

}

class move

{

public:

dir point; //枚举变量point:控制方向

int food_x;

int food_y;

public:

void moving();

void change_point(char); //改变方向;

void get_food();

};

void move::moving()

{

int a,b;

a=head->get_x(); //取得头结点横坐标

b=head->get_y(); //取得头结点纵坐标

switch (point)

{

case up:

--a;

break;

case down:

++a;

break;

case left:

--b;

break;

case right:

++b;

break;

}

if (a==19||b==19||a==0||b==0||game[a][b]='*') //推断是否撞墙

{

cout<

exit(0);

}

if (a==food_x&&b==food_y) //吃food

{

head->add_head(a,b);

get_food;

}

else

{

head->add_head(a,b); //插入头结点

head->delete_tail(); //删除尾结点

}

void move::change_point(char keydown)

{

switch (keydown)

{

case 'w':

point=up;

break;

case 's':

point=down;

break;

case 'a':

point=left;

break;

case 'd':

point=right;

break;

}

}

void move::get_food()

{

srand((unsigned int) time(NULL)); //做种子(程序执行时间)

food_x=rand()%18+1;

food-y=rand()%18+1;

f.game[food_x][food_y]='*';

}

}

int main()

{

cout<

move m;

f.lnitFence();

head->add_head(4,3);

head->add_head(4,4);

head->add_head(4,5);

m.get_food();

f.OutputF();

while (ture)

{

char keydown =getch(); //getch()返回

m.chan

ge_point(keydown);

while (!kbhit()) //推断有没有按键落下

{

system("cls"); //清屏函数;

m.moving();

f.OutputF();

sleep(200);

}

}

return 0;

}

错误显示:

这是我在网上看到的。照着原图花了半个多小时敲出来的代码,可问题还是一大堆。网上的东西果然不可信啊   这里面好像大部分都是C语言,求有空的大神帮我改动成C++,找出错误并改正,谢谢啦;新手上路,请多多关照。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值