博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言贪吃蛇详解5.GameOver功能与显示成绩
阅读量:4312 次
发布时间:2019-06-06

本文共 2877 字,大约阅读时间需要 9 分钟。

c语言贪吃蛇详解5.GameOver功能与显示成绩

以前我们已经做出来了一个能吃东西变长的蛇。不过它好像不会死。。。

现在就来实现一下game over的功能吧。

写个函数判断蛇是否撞到自己或者撞到墙:

bool gameOver(){    bool isGameOver=false;    int sX=s[0][0],sY=s[0][1];      //蛇头的x坐标和y坐标    if(sX==0||sX==H-1||sY==0||sY==W-1)        isGameOver=true;    for(int i=1; i

然后在main里面加这个实现gameOver

if(gameOver())        {            system("cls");          //清除屏幕内容            printf("Game Over\n");              system("pause");            break;        }

看看效果

 

 

到现在为止的代码:

#include 
#include
#include
#include
#include
#define H 23#define W 75#define WAIT_TIME 500//定义direction的每个值代表的方向#define UP 0#define DOWN 1#define LEFT 2#define RIGHT 3int a[H][W]; //地图数组int s[H*W][2]; //蛇身坐标数组int sLength; //蛇的长度int direction; //蛇的方向bool eated=false; //标记是否吃到食物void init() //程序开始时的初始化操作{ srand((unsigned)time(NULL)); //设置随机数种子为现在的时间 CONSOLE_CURSOR_INFO cursor_info = {
1, 0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); //隐藏关标 int i,j; for(i=0; i
0; i--) //从尾巴开始,每一个点的位置等于它前面一个点的位置 { s[i][0]=s[i-1][0]; s[i][1]=s[i-1][1]; } switch(direction) { case UP: s[0][0]--; break; case DOWN: s[0][0]++; break; case LEFT: s[0][1]--; break; case RIGHT: s[0][1]++; break; }}void drawSnake() //画蛇{ int i; for(i=0; i

接下来,我们来显示一下成绩。

声明一个变量来记录分数

int score=0;        //得分

然后当吃到食物时分数增加(main里面)

if(a[s[0][0]][s[0][1]]==-1) //如果蛇头碰到食物,就重新投放食物,并且把食物点重置为0        {            eated=true;             //标记已经吃到食物            score+=10;            food();            a[s[0][0]][s[0][1]]=0;  //去掉食物        }

然后写一个printScore函数来写分数

void printScore(){    gotoxy(0,W+2);    printf("  贪吃蛇小游戏");    gotoxy(1,W+2);    printf("  环家伟制作");    gotoxy(4,W+2);    printf("  得分:%d",score);}

记得在main里面调用啊。看看效果:

 

 完整代码:

#include 
#include
#include
#include
#include
#define H 23#define W 75#define WAIT_TIME 500//定义direction的每个值代表的方向#define UP 0#define DOWN 1#define LEFT 2#define RIGHT 3int a[H][W]; //地图数组int s[H*W][2]; //蛇身坐标数组int sLength; //蛇的长度int direction; //蛇的方向bool eated=false; //标记是否吃到食物int score=0; //得分void init() //程序开始时的初始化操作{ srand((unsigned)time(NULL)); //设置随机数种子为现在的时间 CONSOLE_CURSOR_INFO cursor_info = {
1, 0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); //隐藏关标 int i,j; for(i=0; i
0; i--) //从尾巴开始,每一个点的位置等于它前面一个点的位置 { s[i][0]=s[i-1][0]; s[i][1]=s[i-1][1]; } switch(direction) { case UP: s[0][0]--; break; case DOWN: s[0][0]++; break; case LEFT: s[0][1]--; break; case RIGHT: s[0][1]++; break; }}void drawSnake() //画蛇{ int i; for(i=0; i

更多精彩:

转载于:https://www.cnblogs.com/hjw1/p/8270367.html

你可能感兴趣的文章
OKMX6Q在ltib生成的rootfs基础上制作带QT库的根文件系统
查看>>
zabbix
查看>>
多线程基础
查看>>
完美解决 error C2220: warning treated as error - no ‘object’ file generated
查看>>
使用SQL*PLUS,构建完美excel或html输出
查看>>
SQL Server数据库笔记
查看>>
X-Forwarded-For伪造及防御
查看>>
android系统平台显示驱动开发简要:LCD驱动调试篇『四』
查看>>
Android 高仿微信头像截取 打造不一样的自定义控件
查看>>
Jenkins的初级应用(1)-Publish Over SSH
查看>>
利用正则表达式群发定制邮件
查看>>
【原】RDD专题
查看>>
第三周——构建一个简单的Linux系统MenuOS
查看>>
Docker 的两类存储资源 - 每天5分钟玩转 Docker 容器技术(38)
查看>>
Codeforces 257D
查看>>
常用的20个强大的 Sublime Text 插件
查看>>
ajaxfileupload.js在IE中的支持问题
查看>>
tensorflow学习之(十)使用卷积神经网络(CNN)分类手写数字0-9
查看>>
当document.write里含有script标签时
查看>>
工作中常见问题
查看>>