如何使用C语言实现贪吃蛇游戏
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,小编给大家分享一下如何使用C语言实现贪吃蛇游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、实现效果键位:使用wasd
千家信息网最后更新 2026年11月04日如何使用C语言实现贪吃蛇游戏
小编给大家分享一下如何使用C语言实现贪吃蛇游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
一、实现效果
键位:使用wasd四个键位来控制方向,按q键退出(注意在终用英文输入法实现键控)
规则:蛇每吃一个豆会得10分,同时身体边长、移速加快
当蛇碰到墙壁或咬到自身时游戏结束,同时会输出游戏得分

二、部分代码解释
(1)用结构体定义蛇和豆
typedef struct Snakes{ int x; int y; struct Snakes *next;}snake; snake *head,*tail; struct Food{ int x; int y;}food;(2)打印墙壁
void creatgraph() { int i; for (i = 0; i<58; i += 2)//打印上下边框 { gotoprint(i, 0); gotoprint(i, 26); } for (i = 1; i < 26; i++) { gotoprint(0, i); gotoprint(56, i); } head = (snake*)malloc(sizeof(snake)); head->x = 16; head->y = 15; //gotoprint(head->x, head->y); tail = (snake*)malloc(sizeof(snake)); snake *p = (snake*)malloc(sizeof(snake)); snake *q = (snake*)malloc(sizeof(snake)); p->x = 16; p->y = 16; q->x = 16; q->y = 17; head->next = p; p->next = q; q->next = tail; //gotoprint(p->x, p->y); //gotoprint(q->x, q->y); tail->next = NULL; tail->x = 4; tail->y = 2; } void gotoxy(int x, int y){ COORD pos; HANDLE hOutput; pos.X = x; pos.Y = y; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOutput, pos);} void gotoprint(int x, int y){ gotoxy(x, y); printf("■");} void gotodelete(int x, int y){ gotoxy(x, y); printf(" ");}(3)生成豆
void creatfood(){ srand((int)time(NULL)); lable: food.y = rand() % (25 - 1 + 1) + 1; food.x = rand() % (54 - 2 + 1) + 2; if (food.x % 2 != 0) { food.x = food.x+1; } snake *judge = head; while (1) { if (judge->next == NULL) break; if (food.x == judge->x&&food.y == judge->y) { goto lable; } judge = judge->next; } gotoxy(food.x, food.y); printf("⊙");}(4)点击控制函数
int ClickControl(){ char c; while (1) { if (Judge()==0) return 0; if (_kbhit()) { click = _getch(); } MovingBody(); Eating(); } return 1;}(5)移动控制
void MovingBody(){ int count = 0; int a = head->x, b = head->y; snake *p = head; while (1) { if (p->next == NULL) break; gotodelete(p->x, p->y); count++; p = p->next; } switch (click) { case up: head->y -= 1; ChangeBody(a,b); break; case down: head->y += 1; ChangeBody(a,b); break; case left: head->x -= 2; ChangeBody(a,b); break; case right: head->x += 2; ChangeBody(a,b); break; case stop: _getch(); break; } p = head; while (1) { if (p->next == NULL) break; gotoprint(p->x, p->y); p = p->next; } p = head; gotoxy(0, 28); if (count <= 10) speed = 150; else if (count > 10 && count <= 20) speed = 100; else if (count > 20 && count <= 40) speed = 50; else speed = 10; Sleep(speed);}(6)更改蛇身
void ChangeBody(int a,int b){ snake *p = head->next; int mid1, mid2,_mid1,_mid2; mid1 = p->x; mid2 = p->y; while (1) { if (p->next->next == NULL) break; _mid1 = p->next->x; _mid2 = p->next->y; p->next->x = mid1; p->next->y = mid2; mid1 = _mid1; mid2 = _mid2; p = p->next; } p = head->next; { p->x = a; p->y = b; }}以上是"如何使用C语言实现贪吃蛇游戏"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
篇文章
控制
语言
内容
同时
墙壁
键位
上下
不怎么
代码
函数
大部分
得分
效果
方向
更多
知识
结构
行业
规则
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技名片
湖北九亚互联网络科技有限公司
互联网科技行业发展
互联网巨头反垄断金融科技
北京互联网科技公司
互联网与未来科技
丰台科技园 互联网
多迪互联网科技有限公司
互联网巨头投资的硬核科技
北京三清互联网科技
互联网对科技的发展
速维有品互联网信息科技(苏州)有限公司
威龙国际互联网科技公司
爱医互联网络科技
为客找房互联网科技公司怎么样
富国互联网金融科技混合基金
福建互联网展示科技馆设计
世界互联网科技成果奖
艺电能源互联网科技有限公司招聘
青岛互联网科技园
互联网科技保险
互联网最新的科技
互联网科技垄断
科技类互联网
没上市的科技互联网公司
互联网科技金融
科技赋能互联网健康
互联网科技博主是什么意思
开一家科技互联网公司需要多少钱
黑龙江互联网科技公司