本文目录一览:
贪吃蛇大作战怎么打出高分
贪吃蛇大作战高分 贪吃蛇大作战打高分技巧,此游戏自上线以来,一直深受玩家喜爱,那么想知道贪吃蛇大作战高分 贪吃蛇大作战打高分技巧的最新攻略及新闻信息么,下面跟着小骨来一起学习关于贪吃蛇大作战高分 贪吃蛇大作战打高分技巧的知识吧,希望各位玩家了解后能够对该游戏有更加深入的理解。
在贪吃蛇大作战中,我们虽然知道要尽量把自己吃到最大,但是也有一些技巧和规则需要知道哦,那下面铁骨就给大家分享一下新手须知的高分技巧,一起来看看吧。
【游戏规则】
游戏的唯一的目标就是长成最长的一条蛇!依靠吃地图上的闪亮光点,可以迅速长大变粗。当你撞到其他蛇蛇的身体或撞墙会死亡,蛇蛇死亡后会化成大量的光点。通过吃别人死亡后留下的光点,可以迅速增强自己的长度!
【光点介绍】
细心的玩家会发现,地图上的光点大小不同,小的光点是地图上随机生成的,或者别的蛇加速时留下的,而大的光点则是蛇死掉后变成的。小的光点增加的长度很少,大的光点增加的长度是巨大的,如果玩家想要快速变长,就多去找一些大的光点吃吧
【杀敌技巧】
游戏中主要的杀敌方式分为:超车杀、尾行杀和围杀,下面我么来具体分析一下运用方法。
超车杀
用身体贴近对方,在贴近距离之后,突然一个加速冲到对方蛇头前面,然后往左右进行移动,对方就可能来不及刹车撞上来被你击杀。不过这也是比较冒险的方法,一个操作不慎就会被反杀。
尾行杀
跟着体型较大的蛇,当对方失误,或者被更大的蛇击杀之后,就可以迅速吃掉对方,迅速成长。但这也有一定的危险性,因为大蛇有可能随时回头先吃掉你!
围杀
如果你已经成长到一定的程度,就可以以围绕的方式将小蛇圈到自己的可移动的范围,然后慢慢缩小包围圈,等待敌人失误被杀,最后将其吞噬。
围杀还有另外一个好处,就是敌人被击杀后,尸体在你的包围圈内,不会被其他小蛇争抢(但如果包围圈太大的话,可能会出现重生的小蛇)。
更多贪吃蛇大作战的最新资讯,请大家继续关注铁骨网 。
c语言贪吃蛇代码
基本思路:
蛇每吃一个食物蛇身子就增加一格,用UP, DOWN, LEFT, RIGHT控制蛇头的运动,而蛇身子跟着蛇头走,每后一格蛇身子下一步走到上一格蛇身子的位置,以此类推。
#include stdio.h
#include conio.h
#include windows.h
#define BEG_X 2
#define BEG_Y 1
#define WID 20
#define HEI 20
HANDLE hout;
typedef enum {UP, DOWN, LEFT, RIGHT} DIR;
typedef struct Snake_body
{
COORD pos;//蛇身的位置
struct Snake_body *next;//下一个蛇身
struct Snake_body *prev;//前一个蛇身
}SNAKE, *PSNAKE;
PSNAKE head = NULL;//蛇头
PSNAKE tail = NULL;//蛇尾
//画游戏边框的函数
void DrawBorder()
{
int i, j;
COORD pos = {BEG_X, BEG_Y};
for(i = 0; i HEI; ++i)
{
SetConsoleCursorPosition(hout, pos);
for(j = 0; j WID; ++j)
{
if(i == 0)//第一行
{
if(j == 0)
printf("┏");
else if(j == WID - 1)
printf("┓");
else
printf("━");
}
else if(i == HEI - 1)//最后一行
{
if(j == 0)
printf("┗");
else if(j == WID - 1)
printf("┛");
else
printf("━");
}
else if(j == 0 || j == WID - 1)//第一列或最后一列
printf("┃");
else
printf(" ");
}
++pos.Y;
}
}
//添加蛇身的函数
void AddBody(COORD pos)
{
PSNAKE pnew = (PSNAKE)calloc(1, sizeof(SNAKE));
pnew-pos = pos;
if(!head)
{
head = tail = pnew;
}
else
{
pnew-next = head;//新创建蛇身的next指向原先的蛇头
head-prev = pnew;//原先的蛇头的prev指向新创建的蛇身
head = pnew;//把新创建的蛇身作为新的蛇头
}
SetConsoleCursorPosition(hout, head-pos);
printf("◎");
}
//蛇身移动的函数
void MoveBody(DIR dir)
{
PSNAKE ptmp;
COORD pos = head-pos;
switch(dir)
{
case UP:
if(head-pos.Y BEG_Y + 1)
--pos.Y;
else
return;
break;
case DOWN:
if(head-pos.Y BEG_Y + HEI - 2)
++pos.Y;
else
return;
break;
case LEFT:
if(head-pos.X BEG_X + 2)
pos.X -= 2;
else
return;
break;
case RIGHT:
if(head-pos.X BEG_X + (WID - 2) * 2)
pos.X += 2;
else
return;
break;
}
AddBody(pos);//添加了一个新的蛇头
ptmp = tail;//保存当前的蛇尾
tail = tail-prev;
if(tail)
tail-next = NULL;
SetConsoleCursorPosition(hout, ptmp-pos);
printf(" ");
free(ptmp);
}
int main()
{
int ctrl;
DIR dir = RIGHT;//初始蛇的方向是向右的
COORD pos = {BEG_X + 2, BEG_Y + HEI / 2};
system("color 0E");
system("mode con cols=90 lines=30");
hout = GetStdHandle(STD_OUTPUT_HANDLE);
printf(" ------------贪吃蛇的移动------------");
DrawBorder();
//自定义几个蛇的身体
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
//控制蛇的移动
while(ctrl = getch())
{
switch(ctrl)
{
case 'w':
if(dir == DOWN)
continue;
dir = UP;
break;
case 's':
if(dir == UP)
continue;
dir = DOWN;
break;
case 'a':
if(dir == RIGHT)
continue;
dir = LEFT;
break;
case 'd':
if(dir == LEFT)
continue;
dir = RIGHT;
break;
case 'q':
return 0;
}
MoveBody(dir);
}
return 0;
}
扩展资料:
实现逻辑
1,可以设置光标,就能实现制定位置打印制定符号。
2,涉及一个结构体,包含两个元素坐标元素和一个结构体指针。
3,结构体串联形成链表,遍历获取成员坐标,打印符号得到蛇身。
4,不断的加头,去尾,重新遍历坐标,再打印形成蛇的移动。
5,食物产生的位置判定,不能越界,也不能与蛇身体重合。
6,蛇的转向判定,一条规则,不允许倒退。
7,转向的实现,跟行进方向决定新的关节坐标(当前头的上下左右)
8,死亡检测,是否头节点坐标是否与墙壁重合,是否与身体其他关节重合。
9,加速减速,设置刷新休眠时间实现。
参考资料来源:百度百科-C语言
玩小游戏!
电人2 铁臂阿童木 野蛮竞技场 苏俄拳王
版娘MM大作战 龙拳3 狂暴战警 盗墓特训
暴走女族 圣诞小鹿 疯狂礼物 业余拳击
末路 动物侠客冒险2 美味比萨大战 蠕虫战争
地狱行走 袋鼠拳击 蜘蛛人城市攀越 疯狂街头霸王II
装甲英雄2 日蚀之刀 巫师复活 拯救村庄吧~
罗马战士2 黑拳 孤独剑客 打击恶人
罗马战士 挥刀者 战国乱舞 派系纷争
侍魂演武之百人斩 末路武士2 拳皇梦幻之战 生死格斗
格斗先锋 功夫夺情书 忍者神龟 99拳击
拳打水果 末日男1 末日男2 热血高校
合金弹头生化版2 疯狂街头霸王 决斗武士 角斗士之城堡战争
鼻毛战士 鬼泣格斗版 恶斗世界杯 影子的传说3
武士格斗精装版 狂扁小甜甜的老公 卫生饮食 末路武士
影子的传说之忍者新娘 狂暴者 韦德拳击战 武士之刃
李小龙传奇 机器车大战 发泄拳击2 街头快打
决战骷髅岛 部落战神5 霸王美少女 部落战神4
部落战神3 部落战神2 浴血对抗 鬼怪争霸
热血高校少年激斗编 天地会大劫 海贼王ONEPIECE单关卡版 深入非洲丛林
统统打倒! 闪电阻击 浴血小黑 好人卡KUSO大作战
没有懒觉睡的骑士2 鼠鼠特攻战 街头霸王4 驱年兽之天空战记
暗影索尼克 致命黑市拳 我不要谈恋爱 低级格斗
拳霸美眉 流氓兔躲避球 死神-DEMO 街头混混战
决斗,天龙对天马 街机三国志FLASH(加入道具系统)极品版 kof大战野蛮人 双截龙真人版
蝙蝠侠冰城攻略 部落战神 王子剑 抗战英雄DEMO版
狂扁小朋友 顶级拳皇 三国志关羽列传(测试版) 元素物语
中日拳术大比拼Ⅱ 罗马战争 功夫 蛇梦惊魂
新合金弹头 格斗至尊 超级街头霸王 天虫街霸
勇士BOB 麻辣女孩_2 麻辣女孩_1 杀戮街头
街头太保 拳霸2 火焰松鼠 丛林大决战
巴西格斗1 巴西格斗 少年街霸 血染街头
中日拳术大比拼 小小功夫 血战办公室 南拳兄妹
灵动嘻哈势力短剑版 改造人 战国英豪传 侦探大战群匪
独立派系 街头霸王(格斗篇) 暗影阿拉伯 神剑英雄杰拉
功夫 恶魔城 天诛忍者3 泰拳之虎2
泰拳之虎 魔兽格斗版 绿巨人 闪客快打
闪客快打2 蹦蹦小子 敌后武工队 真人快打
怪猫闯关 神勇白金龙 无敌三国志 古墓迷踪2
喋血双雄 灵剑封魔录 学校战斗 魂斗罗双打DIY完整版
疯狂泰拳 超级索尼科 忍者龙剑传 疯狂牙神
武术大师 斗鸡 新格斗之王 日本武士道
格斗七龙珠 人牛大作战 玩命高手 怒火街头
阿卵向前冲 三国赵云传 发泄拳击1.0版 过关斩将-小小9号作品
冒险钻石 拯救猫咪 合金弹头2 蜘蛛飞侠
超级魂斗罗 蹦蹦小天使 爱情狂奔 李小龙传奇
黑客帝国 飞鸟骑士 公园清道夫 太空兔子
激斗肺炎 气泡大作战 野蛮人小乔 拳皇2000
快乐小浣熊 忍者龙剑传 格斗乱舞 蛋蛋快打
厨房大战 超级武士 街头霸王II 恭喜发财
波斯王子 土人大战 接炸弹 妞妞跳大绳
辣妹快打 滑雪竞技场 圣诞老人打架 圣诞大逃亡
英雄救美 罗马斗兽场 千年古墓 疯狂跑楼梯
双截龙古惑版 洛克人X计划 美女格斗 炸弹人跳舞机
飞排打苍蝇 弹力橡皮脑袋 新超级玛丽 喜从天降
疯狂小蜜蜂 勇闯夺命岛 迷你街头霸王 大战咸蛋超人
汉堡制作高手 超级魂斗罗 蜘蛛飞侠 合金弹头2
拯救猫咪 忍者龙剑传 街头霸王II 黑客帝国
拳皇2000
贪吃蛇大作战混战打法技巧
贪吃蛇大作战游戏中经常遇到群蛇混战的局面,面对这种局面我们应该如何操作呢?贪吃蛇大作战混战模式怎么打呢?下面小编就和大家详细介绍贪吃蛇大作战混战打法技巧。
贪吃蛇大作战混战阶段注意事项当一些蛇蛇上了1000分就开始混战吧!我们专找地图上的红点攻击,他们是分数前10的蛇,击杀能获得大量的能量。如果半路遇到小蛇就顺路就送他回老家遇到光点就拐过去吃一下。混战阶段跟着蛇王走会有更大的收获。当其他蛇蛇混战死伤一地的时候,利用幽灵技能和加速技能上去吃分,或者利用摆身技巧继续扩大战果。这个阶段就算死的再多在后面的时间也能翻盘,所以不要怂就是拼,拼的够凶残甚至能在这个阶段就能直接赚够分数成为蛇王。以上就是小编分享的贪吃蛇大作战混战局面打法介绍全部内容,更多精彩攻略请关注安趣网贪吃蛇大作战专区。
贪吃蛇大作战无敌版
一、首先我们需要下载一个夜神安卓模拟器 (百度下载)
二、安装完成后打开模拟器,打开桌面的“夜神应用中心”,然后搜索“贪吃蛇大作战”下载安装;(或者直接下载贪吃蛇大作战手游APK包,然后拖拽安装到夜神安卓模拟器)
三、下载安装完成后直接打开,就可以在电脑上玩贪吃蛇大作战了
电脑玩的好处就是,可以用模拟器的键盘操控功能来设置键盘WASD代替游戏的上下左右,自定义一个键盘按键来代替游戏中的加速效果
然后就可以充当霸屏狂魔了!
谁有用c语言制作贪吃蛇的代码,及使用方法,用VC打
/*
C/C++贪吃蛇游戏,zjlj,2015.3.16
*/
#define DEBUG 0 //当程序在调试阶段时 DEBUG为 1
#includeiostream
#includewindows.h
#includetime.h
#includeconio.h
using namespace std;
void readini(FILE **fphead, int *score, char *argv[]) //创建或打开一个和运行文件对应的ini文件,读取最高纪录
{
char filename[200],*pfilename;
int flag=-1,i;
strcpy(filename,argv[0]);
for(i=0;filename[i]!='\0';i++)
{
if ('.'==filename[i])flag=1;
}
if(1==flag)
{
filename[i-1]='i';
filename[i-2]='n';
filename[i-3]='i';
}
else
{
filename[i]='.';
filename[i+1]='i';
filename[i+2]='n';
filename[i+3]='i';
filename[i+4]='\0';
}
for(;filename[i]!='\\'i=0;i--)pfilename=filename[i];
if ( (*fphead=fopen(pfilename, "rb+"))==NULL)
{
if ( (*fphead=fopen(pfilename, "wb+"))==NULL)
{
printf("无法创建或打开\"%s\"文件\n",pfilename);
system("pause");
exit(0);
}
}
else
{
fread(score,sizeof(int),1,*fphead);
}
}
void writeini(FILE **fphead, int *score, char *argv[]) //打开一个和运行文件对应的ini文件,写入最高纪录
{
char filename[200],*pfilename;
int flag=-1,i;
strcpy(filename,argv[0]);
for(i=0;filename[i]!='\0';i++)
{
if ('.'==filename[i])flag=1;
}
if(1==flag)
{
filename[i-1]='i';
filename[i-2]='n';
filename[i-3]='i';
}
else
{
filename[i]='.';
filename[i+1]='i';
filename[i+2]='n';
filename[i+3]='i';
filename[i+4]='\0';
}
for(;filename[i]!='\\'i=0;i--)pfilename=filename[i];
if ( (*fphead=fopen(pfilename, "wb+"))==NULL)
{
printf("无法写入\"%s\"文件,磁盘写保护!\n",pfilename);
system("pause");
exit(0);
}
else
{
rewind(*fphead);
fwrite(score,sizeof(int),1,*fphead);
fclose(*fphead);
}
}
void gotoxy(int x,int y)//光标定位,光标定位函数SetConsoleCursorPosition是左上角位置是0,0然后向左向下延伸
{
COORD pos;
pos.X=2*y;
pos.Y=x;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void color(int a)//颜色函数
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void Refresh(int q[][22], int grade, int gamespeed, int length,int score) // 输出贪吃蛇棋盘
{
int i,j;
for(i=0;i22;i++)
{
for(j=0;j22;j++)
{
if(q[i][j]==0)//输出棋盘空白
{
gotoxy(i,j);
color(11);
cout"■";
}
if(q[i][j]==1||q[i][j]==2)//输出棋盘墙壁
{
gotoxy(i,j);
color(11);
cout"□";
}
if(q[i][j]==3)//输出蛇头
{
gotoxy(i,j);
color(14);
cout"★";
}
if(q[i][j]==4)//输出蛇身
{
gotoxy(i,j);
color(12);
cout"◆";
}
if(q[i][j]==5)//输出果子
{
gotoxy(i,j);
color(12);
cout"●";
}
}
if(i==0) cout "\t***********************";
if(i==1) cout "\t等级为:" grade;//显示等级
if(i==3) cout "\t自动前进时间";
if(i==4) cout "\t间隔为:" gamespeed "ms";//显示时间
if(i==6) cout "\t历史最高分为:" score "分";
if(i==7) cout "\t你现在得分为:" (length+(grade-1)*8)*10 "分";
if(i==8) cout "\t**********************";
if(i==9) cout "\t游戏说明:";
if(i==10) cout "\t(1)用小键盘方向键控制";
if(i==11) cout "\t蛇头运动方向;";
if(i==12) cout "\t(2)蛇每吃一个果子蛇身";
if(i==13) cout "\t增加一节;";
if(i==14) cout "\t(3)蛇咬到自己或碰到墙";
if(i==15) cout "\t壁游戏结束。";
if(i==18) cout "\t**********************";
if(i==19) cout "\tC/C++语言作业:";
if(i==20) cout "\tzjlj,2015.03.16 ";
}
}
int main(int argc, char *argv[]){
int tcsQipan[22][22]; // 贪吃蛇棋盘是一个二维数组(如22*22,包括墙壁)
int i,j,score,directiontemp;
FILE *fpini;//*fpini 信息文件
readini(fpini, score, argv);//读取ini文件的最高纪录
if (score0)//最高成绩小于零设置为零,初建文件会是负数
score=0;
while(1)
{
for(i=1;i=20;i++)
for(j=1;j=20;j++)
tcsQipan[i][j]=0; //贪吃蛇棋盘相应坐标标上中间空白部分的标志0
for(i=0;i=21;i++)
tcsQipan[0][i] = tcsQipan[21][i] = 1; //贪吃蛇棋盘相应坐标标上上下墙壁的标志1
for(i=1;i=20;i++)
tcsQipan[i][0] = tcsQipan[i][21] = 2; //贪吃蛇棋盘相应坐标标上左右墙壁的标志2
int tcsZuobiao[2][500]; //蛇的坐标数组
for(i=0; i4; i++)
{
tcsZuobiao[0][i] = 1;//蛇身和蛇头的x坐标
tcsZuobiao[1][i] = i + 1;//蛇身和蛇头的y坐标
}
int head = 3,tail = 0;//标示蛇头和蛇尾的数组偏移量
for(i=1;i=3;i++)
tcsQipan[1][i]=4; //蛇身
tcsQipan[1][4]=3; //蛇头
int x1, y1; // 随机出果子
srand(time(0));//设置随机种子
do
{
x1=rand()%20+1;
y1=rand()%20+1;
}
while(tcsQipan[x1][y1]!=0);//如果不是在空白处重新出果子
tcsQipan[x1][y1]=5;//贪吃蛇棋盘相应坐标标上果子的标志5
color(12);
cout"\n\n\t\t\t\t贪吃蛇游戏即将开始 !"endl;//准备开始
long start,starttemp;
int grade = 1, length = 4; //设置初始等级和蛇的初始长度
int gamespeed = 500; //设置初始前进时间间隔
for(i=3;i=0;i--)
{
start=clock();
while(clock()-start=1000);
system("cls");
if(i0)
cout "\n\n\t\t\t\t进入倒计时:" i endl; //倒计时显示
else
Refresh(tcsQipan,grade,gamespeed,length,score); //初始棋盘显示
}
int timeover=1,otherkey=1;//初始化超时时间和按键判断参数
char direction = 77; // 设置初始情况下,向右运动
int x=tcsZuobiao[0][head],y=tcsZuobiao[1][head];//保存蛇头坐标到x,y变量
while(1)//运行一局游戏
{
start = clock();
while((timeover=((starttemp=clock())-start=gamespeed))!kbhit());//如果有键按下或时间超过自动前进时间间隔则终止循环
if(direction==72||direction==80||direction==75 ||direction==77)
directiontemp=direction;//保留上一次方向按键
//starttemp=gamespeed+start-starttemp;//保留停留时间
if(timeover)
{
#if (DEBUG==1)
direction = getch();//调试代码
#else
if((direction =getch())==-32)
direction = getch();
#endif
}
#if (DEBUG==1)//调试代码
start=clock();
while(clock()-start=2000);
gotoxy(24,4);
cout "\t按键ASCII代码"(int)direction" "endl;
#endif
if(!(direction==72||direction==80||direction==75 ||direction==77))
{
otherkey=0;// 按键非方向键,otherkey设置为0
}
else
{
otherkey=1;// 按键为方向键,otherkey设置为1
}
if(direction==72 directiontemp==80)//忽略反方向按键
{
direction=32;
otherkey=0;
//start = clock();
//while(clock()-start=starttemp);
}
else if(direction==80 directiontemp==72)
{
direction=32;//设置按键为非方向键
otherkey=0;// 按键为非方向键,otherkey设置为0
// start = clock();
//while(clock()-start=starttemp);//补偿等待时间
}
else if(direction==75 directiontemp==77)
{
direction=32;
otherkey=0;
//start = clock();
//while(clock()-start=starttemp);
}
else if(direction==77 directiontemp==75)
{
direction=32;
otherkey=0;
//start = clock();
//while(clock()-start=starttemp);
}
switch(direction)//判断方向键
{
case 72: x= tcsZuobiao[0][head]-1; y= tcsZuobiao[1][head];break; // 向上
case 80: x= tcsZuobiao[0][head]+1; y= tcsZuobiao[1][head];break; // 向下
case 75: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]-1;break; // 向左
case 77: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]+1;break; // 向右
default: break;
}
if(x==0 || x==21 ||y==0 || y==21) // 蛇头碰到墙壁,结束本局游戏
{
gotoxy(22,12);
cout "\t游戏已结束!" endl;
if(score=(length+(grade-1)*8)*10)//判断是否破记录
{
gotoxy(10,7);
color(12);
cout "闯关失败 加油耶!" endl;
fclose(fpini);//关闭ini文件
}
else
{
gotoxy(10,7);
color(12);
cout "恭喜您打破记录" endl;
score=(length+(grade-1)*8)*10;
writeini(fpini, score, argv);//写入ini文件的最高纪录
}
gotoxy(23,12);
cout "按回车键重新开始,按ESC退出游戏" endl;//显示的提示
break;//退出该局游戏
}
if(tcsQipan[x][y]!=0!(x==x1y==y1)tcsQipan[x][y]!=3) // 蛇头碰到蛇身,结束本局游戏
{
gotoxy(22,12);
cout "\t游戏已结束!" endl;
if(score=(length+(grade-1)*8)*10)//判断是否破记录
{
gotoxy(10,7);
color(12);
cout "闯关失败 加油耶!" endl;
fclose(fpini);//关闭ini文件
}
else
{
gotoxy(10,7);
color(12);
cout "恭喜您打破记录" endl;
score=(length+(grade-1)*8)*10;
writeini(fpini, score, argv);//写入ini文件的最高纪录
}
gotoxy(23,12);
cout "按回车键重新开始,按ESC退出游戏" endl;//显示的提示
break;//退出该局游戏
}
/*
游戏运行时的核心算法开始
*/
if(x==x1 y==y1) // 吃果子,长度加1
{
length ++;
if(length=8)//长度大于等于8重新计算长度,等级加1
{
length -= 8;//重新计算长度
grade ++;//等级加1
if(gamespeed50)//控制最快速度为50
gamespeed = 550 - grade * 50; // 改变自动前进时间间隔
}
tcsQipan[x][y]= 3;//贪吃蛇棋盘相应坐标现在蛇头标志改为蛇头标志3
tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]] = 4;//贪吃蛇棋盘相应坐标原来蛇头标志改为蛇身标志4
head = (head+1)%400;//防止数组越界
tcsZuobiao[0][head] = x;//蛇头的x坐标
tcsZuobiao[1][head] = y;//蛇头的y坐标
do//随机出果子
{
x1=rand()%20+1;
y1=rand()%20+1;
}
while(tcsQipan[x1][y1]!=0);//如果不是在空白处重新出果子
tcsQipan[x1][y1]=5;//贪吃蛇棋盘相应坐标标上果子的标志5
gotoxy(22,12);
cout "\t游戏进行中!" endl;
Refresh(tcsQipan,grade,gamespeed,length,score);
}
else // 不吃果子
{
if(otherkey)
{
tcsQipan [tcsZuobiao[0][tail]][tcsZuobiao[1][tail]]=0;
tail=(tail+1)%400;//防止数组越界
tcsQipan [tcsZuobiao[0][head]][tcsZuobiao[1][head]]=4;
head=(head+1)%400;//防止数组越界
tcsZuobiao[0][head]=x;//蛇头的x坐标
tcsZuobiao[1][head]=y;//蛇头的y坐标
tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]]=3;
gotoxy(22,12);
cout "\t游戏进行中!" endl;
Refresh(tcsQipan,grade,gamespeed,length,score);
}
else
{
gotoxy(22,12);
cout "\t游戏暂停中!" endl;
}
}
/*
游戏运行时的核心算法结束
*/
}
while(1)
{
while(!kbhit());
if((direction =getch())==13)//按回车键开始下一局
break;
if(direction ==27)//按ESC退出游戏
exit(0);
}
system("cls");//清除屏幕重新开始
}
return 0;
}