资源简介
代码可完美运行,界面美观颜色多样,有文件记录最高分及排行榜
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#define N 21 // 21*21的方格 (注意这里N是方格盘的最大范围 )
//欣雨看这= =,这个他下边使用的时char类型存放的分数和蛇身,使用的ascii码的数,然后读取输出文件也是用的ascii码,
//所以打开文件(最高分)会出现一个奇怪的符号或者数字,但是程序可以自己读,这个没啥问题,只不过应该最高只能存放255分
//程序写的不够友好,这个你先看着
int apple[3];//apple[0]是apple的y坐标apple[1]是apple的x坐标的1/2apple[2]是apple的个数,即标记
char score[3];//score[0]是当前得分score[1]是最高记录score[2]控制极限速度
char tail[3]; //用于存放蛇尾
void gotoxy(int x int y) //输出坐标 gotoxy功能是将光标移动到指定位置头文件是
{
COORD pos;//coord表示一个字符在控制台屏幕上的坐标
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE) pos);
//SetConsoleCursorPosition是一个计算机函数,如果用户定义了COORD pos,
//那么pos其实是一个结构体变量,其中X和Y是它的成员,通过修改pos.X和pos.Y的值就可以实现光标的位置控制。
//GetStdHandle(STD_OUTPUT_HANDLE)获取标准输出的句柄会把字符输出到屏幕上(把你按得wasd输出到屏幕)
}
void color(int b) //颜色函数 (用来输出前景的和背景色只不过颜色用b的值传进来)
//b的值代表颜色值放在window.h头文件中 具体颜色值下面有
{
HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE)) ;
SetConsoleTextAttribute(hConsoleb) ;
} /*void color(int b)
{
//HANDLE 是windows里的句柄类型,它相当于是某个设备在系统里的唯一标识,通过它就可以修改
//这些设备的属性
//GetStdHandle函数用来获取标准输入、输出或者标准错误的句柄,它的参数可以是如下三个:
//STD_INPUT_HANDLE 标准输入
//STD_OUTPUT_HANDLE 标准输出
//STD_ERROR_HANDLE 标准错误
//这里是STD_OUTPUT_HANDLE,所以会得到标准输出的句柄,也就是屏幕输出
HANDLE hConsole=GetStdHandle((STD_OUTPUT_HANDLE)) ;
//调用SetConsoleTextAttribute函数来修改句柄所指向设备的属性,属性值为b
//b可以为单独的前景色,或者背景色,如果同时修改前景色和背景色,则通过|(或)运算符来
//设定,这种方式在编程中非常常见
//比如我上面的例子中FOREGROUND_RED|BACKGROUND_BLUE,就会把前景色设置成红色,背景色设置成蓝色
SetConsoleTextAttribute(hConsoleb);
}*/
int Block(char head[2]) //判断出界
{
if ((head[0] < 1) || (head[0] > N) || (head[1] < 1) || (head[1] > N))//head[0]蛇头横坐标head[1]蛇头纵坐标
return 1;//出界时if语句的返回值
return 0;//block函数的返回值代表返回整型
}
int Eat(char snake[2]) //吃了苹果
{
if ((snake[0] == apple[0]) && (snake[1] == apple[1])) //蛇身的横坐标等于苹果的横坐标纵坐标等于苹果的纵坐标(判断吃到了苹果)
{
apple[0] = apple[1] = apple[2] = 0;//将原来苹果的值进行初始化当appple[2]为0时程序会重新分配苹果位置
gotoxy(N+4410);
color(13);//淡洋红 只用于字符
printf(“%d“score[0]*10);//每吃一个苹果就加3*10=30分
color(11);//淡青 只用于字符
return 1;
}
return 0;
}
void Draw(char **snake int len) //蛇移动
{
if (apple[2]) //如果苹果数量不为0,则绘制苹果
{
gotoxy(apple[1] * 2 apple[0]); //绘制苹果的位置(横坐标纵坐标)
color(12);//淡红 只用于字符 (苹果颜色)
printf(“●“);//苹果用●表示
color(11);//淡青 只用于字符
}
gotoxy(tail[1] * 2 tail[0]);//绘制蛇尾的位置(横坐标纵坐标)
if (tail[2]) //如果蛇尾数量不为0吃掉苹果后蛇尾后的格子加入蛇身
{
color(14); //黄 只用于字符(蛇身颜色)
printf(“★“);//蛇身用 ★表示
color(11);//淡青 只用于字符
}
else //若上述if条件不符合
printf(“■“);
gotoxy(snake[0][1] * 2 snake[0][0]);
color(14);//黄 只用于字符
printf(“★“);
color(11);//淡青 只用于字符
- 上一篇:c语言实现 拉格朗日插值方法
- 下一篇:修正后的C语言实现巴特沃斯程序
相关资源
- C++实现的学生学籍信息管理系统
- MFC人事管理系统工程文件
- VS2015与MySql的连接C++
- C++API中文帮助文档
- c++课程设计日期格式处理
- C++ Primer Plus第6版 源代码+练习答案
- Arduino小车的程序c++/c可以实现红外对
- C++数据结构与算法源代码第四版清华
- C++简单局域网聊天工具
- 课程设计 c++学生教师管理系统
- 天津理工C++实验报告齐全
- c语言贪吃蛇游戏双人对战版源码
- c++图书馆管理系统
- c++语言写最长公共子序列问题
- c++实现的sql基本功能 Linux,win下可运
- c++病毒
- C++ 超市管理系统
- DEV C++ 主题配色文件 Visual Studio 2017深
- 仿雷电射击游戏基于VC++MFC
- 三国杀c++游戏代码含注释
- 动态规划最短路径.cpp
- C++版DS证据理论
- c++ 线程池 即用版
- 一定经纬范围的墨卡托投影.cpp
- 用C++实现的华容道游戏
- C++复习资料精华
- C++,链表,通讯录系统
- 算术编码c++170579
- 自适应哈夫曼编码C++
- C++从入门到精通第三版 清华大学出版
评论
共有 条评论