C语言——贪吃蛇游戏&超详细注释(部分细节还在完善)

本文介绍了一款使用C语言编写的贪吃蛇游戏。虽然游戏实现了基本功能,但存在一些问题,如得分显示不正确和颜色设置不完善。代码已给出,期待后续改进。
摘要由CSDN通过智能技术生成

实现效果如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目前得分代码还有问题不能正确输出,且改颜色也未完善,其他功能正常,有问题待改进。
代码如下:

#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#define height 28	//方块高度 
#define width 60	//方块宽度,必须为偶数

//--------------函数声明---------------------
void GameStare();			//启动画面
void GameOver();			//结束画面
void draw_cube();			//画边框
void initialization();		//初始化蛇身
void gotoxy(int x, int y); 	//移动坐标
void move();				//蛇身移动
void p_move();				//处理蛇头移动后蛇身指针的移动
void food();				//产生食物
void judge_head();			//判断蛇头的位置
void static_info();			//静态信息,如游戏侧栏文字提示
void dynamic_info();		//动态信息,如游戏得分
//--------------------------------------------

//--------------全局变量-----------------------
struct snake
{
   
	int x, y;				//坐标
	struct snake* next;		// 
}*head = NULL, * scan = NULL, * pf = NULL, * pb = NULL;

int speed = 300;				//移动速度(毫秒)
int length = 4;				//初始蛇长
char direction = 'd';			//蛇头方向:w/s/a/d
int food_x, food_y;			//食物坐标
int tail_x, tail_y;			//蛇尾坐标
int snake_xy[1024];			//存储蛇身上每一个节点的坐标
short score = 0;				//游戏得分
short music = 1;				//吃到食物后响铃
//------------------------------------------------

//---------------函数定义区-----------------------	 
void draw_cube()
{
   
	int i;
	for (i = 1;i <= height;i++)//左右方框
	{
   
		gotoxy(0, i);		printf("■");
		gotoxy(width, i);	printf("■");
	}
	for (i = 0;i <= width + 1;i += 2)//上下方框
	{
   
		gotoxy(i, 0);		printf("■");
		gotoxy(i, height + 1);	printf("■");
	}
}

void initialization()		//游戏开始后的初始界面绘制
{
   
	int i;
	draw_cube();			//画方格框架
	for (i = 1;i <= length;i++)	//画出初始蛇身
	{
   
		pb = (struct snake*)malloc(sizeof(struct snake));
		pb->y = 17;			//初始纵坐标y=17
		pb->x = 28;		//初始横坐标x=28

		if (i == 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值