首页 > 代码库 > 无法运行的贪吃蛇游戏代码,求大神帮忙修改!
无法运行的贪吃蛇游戏代码,求大神帮忙修改!
#include <iostream> #include <windows.h> #include <stdlib.h> #include <conio.h> #include <time.h> //使用当前时间做种子 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<<game[i][j]<<''; cout<<endl; } } //蛇结点 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<<"gameover!!!"<<endl; 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<<"Using 'w,a,s,d'to control direction!!!\n\n\n"; //画框框和小蛇; 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++,找出错误并改正,谢谢啦;新手上路,请多多关照。。。
无法运行的贪吃蛇游戏代码,求大神帮忙修改!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。