c语言和c++贪吃蛇代码 动态链表,C++ 贪吃蛇源码分享【动态空间+链表】

[Asm] 纯文本查看 复制代码#include

#include

#include

#include

#include

using namespace std;

int eat_food = 0;

float score = 0;

short int grade = 0;

short int timeout = 700;

int step = 0;

short int derect=77;//上下左右 asc

class SNAKE

{

short int x;

short int y;

SNAKE* Qian;

SNAKE* Hou;

public:

SNAKE(){x = 0; y = 0; Qian = NULL; Hou = NULL;}

SNAKE(int a, int b){x = a; y =b; Qian = NULL; Hou = NULL;}

void change(int a ,int b){if(a!=-1)x = a; if(b!=-1)y = b;}

short int getx(){return x;}

short int gety(){return y;}

SNAKE* qian(){return Qian;}

SNAKE* qian(SNAKE* a){Qian=a;return Qian;}

SNAKE* hou(){return Hou;}

SNAKE* hou(SNAKE* a){Hou=a;return Hou;}

};

class FOOD

{

public:

short int x;

short int y;

};

FOOD food;

SNAKE* end;//尾巴地址

SNAKE* head;///头地址

bool move(int,int,short int **);

bool randfood(int, int , short int &,short int &,short int **);

int main()

{

cout << "\n\t贪吃蛇\n\n\n\t\t Powered by xxxxxxx(差点忘了删)";

short int i,j, a, b;

cout<

cin>>a; cin.sync(); cin.clear();

cout<

cin>>b; cin.sync(); cin.clear();

a+=2;b+=2;

short int **point;

point = new short int* [a]; //-1 墙 0 空 1 身子 2 食物 3头

for(i=0; i

point[i]=new short int[b];

for(i = 1; i < a-1; ++i)

for(j = 1; j < b-1; ++j)

point[i][j] = 0;

for(i = 0; i < a; ++i)

point[i][b-1]=point[i][0]=-1;

for(i = 0; i < b; ++i)

point[0][i]=point[a-1][i]=-1;

cout << " 游戏马上开始,请按任意键继续\n PS:可随时以cmd选择模式暂停\n\n";

system("pause");

end = new SNAKE;

SNAKE* save_end = end;

for(i = 1; i < (a-2)*(b-2); ++i)

{

head = new SNAKE;

end -> qian(head);

head -> hou(end);

end = head;

}

head -> qian(save_end);

save_end -> hou(head);

head=head->qian();/形成a*b的环状双向链表,已验证

end->change(a/2, b/2-1);

head->change(a/2, b/2);

point[a/2][b/2-1]=1;

point[a/2][b/2]=3;

randfood(a, b, food.x,food.y,point);

while(move(a,b,point));///传值边界含外框

for(i=0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值