#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, colorchoose)
C语言小游戏贪吃蛇
最新推荐文章于 2024-08-14 10:50:45 发布
这篇博客分享了使用C语言编写的贪吃蛇小游戏,展示了游戏界面,并提供了完整代码。欢迎大家留言交流。
摘要由CSDN通过智能技术生成