C语言小游戏贪吃蛇

#include <stdio.h>
#include <time.h> 
#include <windows.h>//设置光标,控制台必不可少。 
#include <stdlib.h> 
#include <conio.h>//控制台 
#pragma warning(disable:4996)
#pragma warning(disable:4244)
#define W 100//游戏界面宽度是100 
#define H 40 //游戏界面高度是40 
#define UPLEVEL 5//游戏等级提升所需食物个数是5 
#define OUTLINE 102 //界外菜单信息。 
#define LEN sizeof(struct score)//结构体的大小 
const char* FILE_BIN_PATH = "Data.bin";//二进制文件的路径 
struct snake
{
	int X[105];		//蛇身的横坐标
	int Y[105];     //蛇身的纵坐标
	int length;     //蛇的长度
	int count;		//蛇吃到食物个数
	int speed;     //蛇移动速度

};
struct food
{
	int X;	//食物横坐标
	int Y;	//食物纵坐标
};
struct score
{
	int score;
	struct score* next;
	//char name[20];
};
//全局变量
int i, j, k, max;			 //i,j,k为循环变量,max作为记录历史最高分。 
int key, directionkey;	//按键,与记录上一个方向按键。 
struct snake s, * ps = &s;	//定义蛇的结构体指针并指向蛇的结构体
struct food f, * pf = &f;	//定义食物结构体指针并指向食物结构体
struct score* head = NULL, * pr, * p;

//有关文件、链表的3个函数 
/*从文件读取数据到链表*/
void loadFromFile();
/*将链表数据储存到文件中*/
void saveToBfile();
/*获取历史最高分*/
int GetMaxScore(struct score* head);

/*设置控制台标题与其大小*/
void setTitle();

/*设置控制台颜色*/
void setColor(int colorchoose);

/*设置光标位置*/
void setPos(int x, int y);

/*设置游戏的界面,四周的围墙*/
void Table();

/*显示提示和菜单*/
void showMenu();

/*得到用户输入*/
void getKey();

/*初始化蛇身*/
void initSnake();

/*移动蛇身,刷新蛇身信息*/
void moveSnake();

/*显示蛇身*/
void printSnake();

/*产生食物*/
void produceFood();

/*吃掉食物,变长*/
void eatFood();

/*穿墙*/
void crossWall();

/*死亡*/
void die();

/*游戏结束*/
void gameOver();

/*游戏开始*/
void gameStar();
//分支选项
void choose();

/*主函数*/
int main()
{
	gameStar();
	system("pause");
	return 0;
}
/*设置控制台标题与其大小*/
void setTitle()
{
	//设置控制台窗口大小
	system("mode con cols=150 lines=45");
	//设置控制台标题

}
/*设置光标位置*/
void setPos(int x, int y)
{
	HANDLE a;//句柄HANDLE 
	COORD c;//COORD是个结构体 ,有两个成员int X与int Y 
	c.X = x;
	c.Y = y;
	a = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(a, c);
}
/*设置控制台颜色*/
void setColor(int colorchoose)
{/*10,12,14绿红黄*/
	HANDLE a;
	a = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(a, colorch
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值