地图网站制作百度淘宝网

news/2025/10/5 3:55:42/文章来源:
地图网站制作,百度淘宝网,wordpress support hls player,wordpress代码执行本文实例为大家分享了C实现贪吃蛇游戏的具体代码#xff0c;供大家参考#xff0c;具体内容如下刚学完了C语言#xff0c;便尝试的写了贪吃蛇的代码#xff0c;但是效果不佳#xff0c;很多的bug#xff0c;所以#xff0c;这个学了C#xff0c;便重新的写了这个小游戏…本文实例为大家分享了C实现贪吃蛇游戏的具体代码供大家参考具体内容如下刚学完了C语言便尝试的写了贪吃蛇的代码但是效果不佳很多的bug所以这个学了C便重新的写了这个小游戏用类来封装先是头文件struct Snake{int x, y;};class snake{public:snake() //构造函数{length 3;s[2].x 10;s[2].y 10;s[1].x 9;s[1].y 10;s[0].x 8;s[0].y 10;up right left down 0;}~snake(){}void display(); //显示蛇身函数void Rightmove(); //右移函数void Leftmove(); //左移函数void Upmove(); //上移函数void Downmove(); //下移函数int cheak(); //检查是否撞墙或撞到自身void creat_food(); //产生食物int eat_food(); //吃食物private:struct Snake s[100]; //先定义蛇身最长100int length; //当前蛇长度int x3, y3; //食物坐标int up, down, right, left; //蛇的状态是上移还是下移或...};void make_frame(); //打印框架的函数void show(); //游戏开始倒计时函数void gameover(); //游戏结束函数下面是各个函数的实现的cpp文件# include # include # include # include snake.h# define MaxLen 20# define MaxWen 30using namespace std;HANDLE hOut GetStdHandle(STD_OUTPUT_HANDLE); //获取句柄void gotoxy(HANDLE hOut, int x, int y) //输出位置的函数{COORD pos;pos.X x;pos.Y y;SetConsoleCursorPosition(hOut, pos);}void snake::display() //打印蛇身{for (int i length - 1; i 0; i--){if (i length - 1) //打印蛇头{gotoxy(hOut, s[i].x, s[i].y);cout char(15);}else //打印蛇身{gotoxy(hOut, s[i].x, s[i].y);cout *;}}gotoxy(hOut, 0, 22);}void snake::Rightmove() //右移{right 1; up down left 0;int x1, x2, y1, y2;x1 x2 s[length - 1].x;y1 y2 s[length - 1].y;s[length - 1].x; //蛇头x坐标自增for (int i length - 2; i 0; i--) //除了蛇头其他的结点都等于它的上一个结点的坐标{x2 s[i].x; y2 s[i].y;s[i].x x1; s[i].y y1;x1 x2; y1 y2;}gotoxy(hOut, x2, y2); //消除蛇移动遗留的 ‘*cout ;}void snake::Leftmove() //左移{left 1; right up down 0;int x1, x2, y1, y2;x1 x2 s[length - 1].x;y1 y2 s[length - 1].y;s[length - 1].x--; //同上for (int i length - 2; i 0; i--){x2 s[i].x; y2 s[i].y;s[i].x x1; s[i].y y1;x1 x2; y1 y2;}gotoxy(hOut, x2, y2); //同上cout ;}void snake::Downmove() //下移{down 1; right up left 0;int x1, x2, y1, y2;x1 x2 s[length - 1].x;y1 y2 s[length - 1].y;s[length - 1].y; //同上for (int i length - 2; i 0; i--){x2 s[i].x; y2 s[i].y;s[i].x x1; s[i].y y1;x1 x2; y1 y2;}gotoxy(hOut, x2, y2); //同上cout ;}void snake::Upmove() //上移{up 1; down right left 0;int x1, x2, y1, y2;x1 x2 s[length - 1].x;y1 y2 s[length - 1].y;s[length - 1].y--; //同上for (int i length - 2; i 0; i--){x2 s[i].x; y2 s[i].y;s[i].x x1; s[i].y y1;x1 x2; y1 y2;}gotoxy(hOut, x2, y2); //同上cout ;}int snake::cheak(){int flag 0;for (int i length - 2; i 0; i--) //是否撞到自身{if (s[i].x s[length - 1].x s[i].y s[length - 1].y){flag 1; //是标识符为1break;}}if (flag 1 || (s[length - 1].x 30 1 || s[length - 1].x 4) || (s[length - 1].y 1 || s[length - 1].y 20)){return 0; //检测是否撞自身或者撞墙}else{return 1;}}void snake::creat_food() //产生食物坐标{xy: x3 (rand() % (25)) 3;y3 (rand() % (17)) 2;for (int i length - 1; i 0; i--) //检查食物是否在蛇身上{if (s[i].x x3 s[i].y y3) //是就重新产生食物坐标goto xy;}gotoxy(hOut, x3, y3); //显示食物cout *;}int snake::eat_food(){if (s[length - 1].x x3 s[length - 1].y y3) //蛇头碰到食物{if (up 1) //如果蛇是在上移增加一个结点为蛇头的上一个结点{s[length].x x3;s[length].y y3 - 1;}else if (down 1) //同上{s[length].x x3;s[length].y y3 1;}else if (right 1) //同上{s[length].x x3 1;s[length].y y3;}else if (left 1) //同上{s[length].x x3 - 1;s[length].y y3;}length; //蛇长加1return 1;}elsereturn 0;}void make_frame() //打印框架函数{cout 贪吃蛇游戏 endl;gotoxy(hOut, 2, 1);cout ╔;for (int i 4; i 2 MaxWen; i){gotoxy(hOut, i, 1);printf();}for (int i 2; i MaxLen; i){gotoxy(hOut, 2, i);printf(║);}gotoxy(hOut, 2 MaxWen, 1);printf(╗);for (int i 2; i MaxLen; i){gotoxy(hOut, 2 MaxWen, i);printf(║);}gotoxy(hOut, 2, MaxLen);printf(╚);gotoxy(hOut, 2 MaxWen, MaxLen);printf(╝);for (int i 4; i 2 MaxWen; i){gotoxy(hOut, i, MaxLen);printf();}}void show() //显示操作方法和游戏开始倒计时{gotoxy(hOut, 35, 5);cout ↑: w;gotoxy(hOut, 35, 6);cout ←: a;gotoxy(hOut, 35, 7);cout ↓: s;gotoxy(hOut, 35, 8);cout →: d;gotoxy(hOut, 16, 5);cout 3;Sleep(1000);gotoxy(hOut, 16, 5);cout 2;Sleep(1000);gotoxy(hOut, 16, 5);cout 1;Sleep(1000);gotoxy(hOut, 16, 5);cout ;}void gameover() //游戏结束函数{system(cls);system(color 3B);gotoxy(hOut, 14, 5);cout GAME OVER!;gotoxy(hOut, 14, 6);cout PLAY AGAIN ? Y(yes) \ N(no);}主函数的cpp文件# include # include # include # include snake.husing namespace std;char ch;int main(){while (1){snake sn; //声明对象system(cls); //清屏system(color 3B); //背景和字体颜色调整make_frame(); //打印框架sn.display(); //显示蛇show(); //游戏开始sn.creat_food(); //产生食物while (sn.cheak()) //检查是否死亡{sn.Rightmove(); //右移sn.display(); //显示蛇身if (sn.eat_food()) //检查是否吃到食物{sn.creat_food(); //重新产生食物sn.display();}Sleep(500); //等待500Msp: if (_kbhit()) //是否有按键{ch _getch();if (ch 97 || ch 100)goto p;if (ch 115 || ch 119)break;}}pp: switch (ch) //有按键{case 119: //上移的情况{while (sn.cheak()){sn.Upmove();sn.display();if (sn.eat_food()){sn.creat_food();sn.display();Sleep(300);}Sleep(500);pw: if (_kbhit()){ch _getch();if (ch 119 || ch 115)goto pw;if (ch 97 || ch 100)goto pp;}}}break;case 97: //左移的情况{while (sn.cheak()){sn.Leftmove();sn.display();if (sn.eat_food()){sn.creat_food();sn.display();}Sleep(500);pa: if (_kbhit()){ch _getch();if (ch 97 || ch 100)goto pa;if (ch 115 || ch 119)goto pp;}}}break;case 115: //下移的情况{while (sn.cheak()){sn.Downmove();sn.display();if (sn.eat_food()){sn.creat_food();sn.display();Sleep(300);}Sleep(500);ps: if (_kbhit()){ch _getch();if (ch 115 || ch 119)goto ps;if (ch 97 || ch 100)goto pp;}}}break;case 100: //右移的情况{while (sn.cheak()){sn.Rightmove();sn.display();if (sn.eat_food()){sn.creat_food();sn.display();}Sleep(500);pd: if (_kbhit()){ch _getch();if (ch 100 || ch 97)goto pd;if (ch 119 || ch 115)goto pp;}}}break;default:break;}gameover(); //显示游戏结束是否重玩py: ch _getch();if (ch 110) //否{system(cls);break;}else if (ch 121) //是continue;elsegoto py;}return 0;}下面是游戏的截图控制台的实现不是很美观主要是由于上下和左右的间隙不一样大所以看起来不是很好看但总体还是实现了贪吃蛇关于C小游戏的更多精彩内容请点击专题 《C经典小游戏》 学习了解以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 在教育与科研中的应用与价值

一、引言 🎓 随着信息技术的发展,教育与科研的方式正在发生深刻变化。传统的教育模式和科研方法逐渐与数字化、智能化结合,呈现出新的发展趋势。在这一过程中,Python 作为一种简洁、功能强大、生态丰富的编程语言…

深圳网站建设一尘互联苏州建设交通官方网站

一、第一题:壁画 解题思路:前缀和贪心枚举 仔细思考可以发现B值最大的情况是一段连续的长度为n/2上取整的序列的累加和 【Python程序代码】 import math T int(input()) for _ in range(1,1T):n int(input())s input()l math.ceil(len(s)/…

Python 在自动化测试与质量保障中的应用

一、引言 🧪 随着软件系统的规模日益庞大、复杂度不断提升,人工测试已经无法满足快速迭代和持续交付的需求。自动化测试成为保障软件质量、提高交付效率的关键手段。在自动化测试领域,Python 以其简洁的语法、丰富…

电子网站游戏网址试玩郴州新网最新招聘信息

题目描述 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。输入描…

商城网站开发价整站优化推广品牌

简介: 本文由好未来资深数据平台工程师毛祥溢分享,主要介绍批流融合在教育行业的实践。内容包括两部分,第一部分是好未来在做实时平台中的几点思考,第二部分主要分享教育行业中特有数据分析场景。 1.背景介绍 好未来介绍 好未来是…

wordpress更改中文版后还是英文徐州百度seo排名

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!相对完整的机器学习基础教学! ⭐特别提醒:针对机器学习,特别开始专栏:机器学习python实战…

网站建设xml下载域名网站注册认证

中断 打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。 在确定时间内对相应事件作出响应,如:温度监控(定时器中断)。故障处理,检测到故障&#x…

如何建立自已的购物网站深圳网站开发团队

在云计算时代大环境的影响,各大企业也都企图将云计算融入企业业务中,智能化不只可以提高企业产能、提高服务效率,更能发掘更高的品牌价值。云计算不断深入企业内部,尤其在劳动密集型的产业中,优势更加明显。以电销为例…

1万网站建设费入什么科目个人网站html源码

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

域名注册好了如何做网站it公司排名

Java中常用的类,包,接口包名说明java.lang该包提供了Java编程的基础类,例如 Object、Math、String、StringBuffer、System、Thread等,不使用该包就很难编写Java代码了。java.util该包提供了包含集合框架、遗留的集合类、事件模型、…

城市绿化建设英文网站深圳航空公司官方网站

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 查询工序所在的几何组TAG UF_OPER_ask_geom_group 效果: 代码: void MyClass::do_it() { int count=0;tag_t * objects;UF_UI_ONT_ask_selected_nodes(&count, &objects);for (in…

php在网站开发中的应用高端网站建设熊掌号

图像是获取信息以及探知世界的重要媒介。近年来,传感科技与成像技术实现了跨越式发展,促使图像获取在质与量上均获得了显著提升。在多样化成像手段中,光谱成像技术是成像科技的重要组成部分,是人类借助光这一能量手段探测物质特性…

网站建设及维护费算业务宣传费企业融资方式有哪几种

回顾小夕在文章《逻辑回归》中详细讲解了逻辑回归模型,又在《Sigmoid与Softmax》中详细讲解了Sigmoid的实际意义(代表二类分类问题中,其中一个类别的后验概率)。至此,我们已经比较透彻的理解了逻辑回归模型假设函数(也…

wordpress.org 插件廊坊seo技巧

写简历的基本目的和策略 大部分情况下,写简历是找工作的第一步,考虑到第二步就是面试,那么简历就是敲门砖,为了让企业认识到你的价值,必须把自己的真实水平描述出来,展现出你有能力应对这份工作。甚至要体现…

信宜做网站设置seo主要做什么工作

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍在在JavaScript中location常用属性和方法以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可…

玩转树莓派屏幕之三:lvgl移植到树莓派

一、背景 由于前一篇的文章玩转树莓派屏幕之二:自定义屏幕显示中使用了python绘制图片,再将图片显示到屏幕的方式。只能用于简单显示一些文字,内容不够丰富。 自动动手去从0实现一个显示程序,肯定不显示的,需要了…

商品网站建设设计思路小说网站排名怎么做

目录 系列文章目录 前言 一、配置相关环境 二、创建工作空间 1.创建工作空间并初始化 2.进入 src 创建 ros 包并添加依赖 三、HelloWorld(C版) 1.进入 ros 包的 src 目录编辑源文件 2.编辑 ros 包下的 Cmakelist.txt文件 3.进入工作空间目录并编译 四 运行程序 五 …

enthalpy/entropy

Алексей Экимов — единственный россиянин, получивший Нобелевскую премию по химии в 2023 году за технологии нанок…

Day26自定义异常

package Demo2; //自定义异常类 public class Myexception extends Exception {//传递数字>10private int detail;public Myexception(int a) {this.detail = a;}//重写toString打印异常信息@Overridepublic String…

重庆潼南网站建设公司wordpress浏览次数插件

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL中TEXT数据类型的最大长度 在MySQL中,TEXT数据类型用于存储较大…