本次为大家提供一个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;}}

三、完整代码下载链接

链接:https://pan.baidu.com/s/1XxCY2XBjKeoKL9q3XKgUpg 
提取码:6666

【基础语法】C语言编写贪吃蛇游戏相关推荐

  1. linux贪吃蛇c程序,Linux环境下C语言实现贪吃蛇游戏

    Linux环境下C语言实现贪吃蛇游戏 [liul@test snake]$ more snake.c #include #include #include #include #include #def ...

  2. 贪吃蛇c语言经典程序下载,C语言实现贪吃蛇游戏(单人版)

    本文实例为大家分享了C语言实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 相比于第一个:贪吃蛇游戏,功能更加丰富 #include"snake.h" //蛇的移动 void m ...

  3. Linux下编写贪吃蛇游戏

    Linux下编写贪吃蛇游戏 文章目录 Linux下编写贪吃蛇游戏 前言 一.贪吃蛇代码 二.运行贪吃蛇代码 前言 本程序需要ncurses库,ubuntu下安装ncurses可以执行下面命令: sud ...

  4. c语言贪吃蛇游戏的论文,基于c语言的贪吃蛇游戏论文.doc

    基于c语言的贪吃蛇游戏论文 第 PAGE \* Arabic \* MERGEFORMAT 15 页第 PAGE \* Arabic \* MERGEFORMAT 15 页 学校代码 学号 分 类 号 ...

  5. 用C++语言实现贪吃蛇游戏

    最近更了个新的关于用C/C++写贪吃蛇的blog,感觉那个帮助会更大些,这篇中用DirectX技术不适合刚开始试着写游戏的同学,传送:https://blog.csdn.net/weixin_3781 ...

  6. 详解Linux终端下编写“贪吃蛇”游戏

    大一学习C语言的时候就想要用Turbo C编写一个视频小游戏出来,种种原因后面搁浅了,现在借着学习Linux系统编程的劲头,编写了一个终端下可以运行的贪吃蛇游戏,其中此视频游戏用到的一些知识和操作系统 ...

  7. 纯C语言实现贪吃蛇游戏(VC6.0)

    转自C语言网 今天笔者为大家展示C语言写的贪吃蛇游戏,让大家玩一玩自己写的游戏~ 是纯C语言哦~VC6.0开发 无问题 首先,开始界面: 游戏界面如下: 代码如下: 笔者VC6.0下编写,测试无问题, ...

  8. 【C语言】贪吃蛇游戏的实现(一)

    (注意:本代码是在VC++6.0环境下编译的,在其他环境如codeblocks下运行可能会产生意想不到的问题,请尽量使用VC.至于为什么要使用VC编译,哦,我亲爱的朋友,这只有上帝才知道) 最近由于小 ...

  9. C语言之贪吃蛇游戏源码

    贪吃蛇游戏是我编程以来做的第一个游戏,很兴奋,我记得当时我一直最求代码数量的最小化,即以最少的代码实现功能,有的时候,对换行.括号之类的都下手,呵呵,现在想想都想笑,那些年让我纠结的代码门,你们现在还 ...

  10. python编写贪吃蛇游戏

    关于编写游戏,是博主非常向往的东西(博主喜爱游戏),编写游戏得一步一步的走!今天我简单的编写一下非常经典的游戏贪吃蛇!!!! 效果图: 首先引入pygame模块 pip install pygame ...

最新文章

  1. SpringMVC:如何保证Controller的并发安全
  2. UVa1316 Supermarket(贪心)
  3. [X11forword]Display remote application with X11 forword / 远程显示linux服务器GUI
  4. 修改数据库文件为自动扩展以达到表空间自动扩展的目的
  5. SQL Server中的数据类型详解
  6. mvc模式 mysql做网页_SpringMVC + Hibernate + MySQL 的简易网页搭建(Control实现篇)
  7. 深入java虚拟机需要读吗_《深入理解Java虚拟机》读后总结(一)JVM内存模型
  8. [CoffeeScript]使用Yield功能
  9. 《UG NX8.0中文版完全自学手册》一2.4 布局
  10. day02:关于惯性导航工具箱的学习与使用:use of the progen
  11. 二分法02:寻找第一个和最后一个的满足条件的位置
  12. 改变win7登陆时的界面
  13. 【趋势分析】EXPMA四色均线指标优化版主图 通达信 东财等通用
  14. mysql 日志文件_mysql日志文件在哪
  15. Python爬取下载网易云音乐
  16. 小学计算机京剧脸谱教案,[热门]《戏曲脸谱》小学美术教学案例
  17. untiy Input 获取鼠标以及触摸操作
  18. Selenium学习 - 库代码解析
  19. 打包chromium浏览器
  20. 软件测试-测试面试题

热门文章

  1. 基于arduino uno + WS2812b RGB灯带单一颜色跑马灯控制程序
  2. 这 6 个爬虫开源项目 yyds
  3. Centeros常用命令
  4. 基于Python的视频解析器
  5. MySql优化面试题
  6. 运筹系列31:内点法python代码
  7. 主流数据库优缺点以及性能分析
  8. 【2】使用MATLAB进行机器学习(回归)
  9. 图片放大镜 jQuery插件
  10. RS485转USB插电脑上通讯不上