2022/02/05

这篇博客介绍了如何在C语言中创建游戏界面,包括边框和网格的绘制,以及分数和提示信息的显示。同时,文章详细讲解了初始化蛇身的步骤,使用结构体和指针操作来实现蛇的移动。此外,还涉及到了游戏界面的元素,如颜色设定和控制指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

符号 ->:用于指向结构体子数据的指针,用来取子数据。如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。
结构体:https://blog.youkuaiyun.com/zw1996/article/details/53844585
(指针、结构体感觉理解的还不够,要再看看)
STL:https://blog.youkuaiyun.com/u010183728/article/details/81913729
http://c.biancheng.net/stl/
QT:https://blog.youkuaiyun.com/liang19890820/article/details/50277095
http://c.biancheng.net/qt/
MFC:https://blog.youkuaiyun.com/DFSAE/article/details/78706773

/*创建地图*/
void createMap()
{
    int i,j;
    for(i=0;i<58;i+=2)		//打印上下边框
    {
        gotoxy(i,0);
		color(6);			//深绿色的边框
        printf("□");
        gotoxy(i,26);
        printf("□");
    }
    for(i=1;i<26;i++)		//打印左右边框
    {
        gotoxy(0,i);
        printf("□");                        
        gotoxy(56,i);
        printf("□");        
    }
	for(i = 2;i<56;i+=2)	//打印中间网格
	{
		for(j = 1;j<26;j++)
		{
			gotoxy(i,j);
			color(3);
			printf("■\n\n");
		}
	}
}
/*游戏界面右侧的得分和小提示*/
void scoreandtips()
{
	File_out();				//调用File_out(),读取文件save.txt中的内容
	gotoxy(64,4);			//确定打印输出的位置
	color(11);				//设置颜色
	printf("☆最高记录☆:%d",HighScore);	//打印最高分
	gotoxy(64,8);
	color(14);
	printf("当前得分:%d  ",score);
	color(15);
	gotoxy(73,11);
	printf("小 提 示");
	gotoxy(60,13);
	color(6);
	printf("╬ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ ╬");
	gotoxy(60,25);
	printf("╬ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ ╬");
	color(3);
	gotoxy(64,14);
	printf("每个食物得分:%d分",add);
	gotoxy(64,16);
	printf("不能撞墙,不能咬到自己");
	gotoxy(64,18);
	printf("用↑ ↓ ← →分别控制蛇的移动");
	gotoxy(64,20);
	printf("F1键加速,F2键减速");
	gotoxy(64,22);
	printf("空格键暂停游戏");
	gotoxy(64,24);
    printf("Esc键退出游戏");
}
/*初始化蛇身,画蛇身*/
void initsnake()
{
    snake *tail;
    int i;
    tail=(snake*)malloc(sizeof(snake));	//从蛇尾开始,头插法,以x,y设定开始的位置
    tail->x=24;				//蛇的初始位置(24,5)
    tail->y=5;
    tail->next=NULL;
    for(i=1;i<=4;i++)       //设置蛇身,长度为5
    {
        head=(snake*)malloc(sizeof(snake)); //初始化蛇头
        head->next=tail;    //蛇头的下一位为蛇尾
        head->x=24+2*i;     //设置蛇头位置
        head->y=5;
        tail=head;          //蛇头变成蛇尾,然后重复循环
    }
    while(tail!=NULL)		//从头到尾,输出蛇身
    {
        gotoxy(tail->x,tail->y);
		color(14);
        printf("◆");       //输出蛇身,蛇身使用◆组成
        tail=tail->next;    //蛇头输出完毕,输出蛇头的下一位,一直输出到蛇尾
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值