项目实践---贪吃蛇游戏(游戏的概述)

  • 这里要准备三个文件:1.头文件(snake.h)

                                            2.测试文件(test.c)

                                            3.主文件(snake.c)

  • 贪吃蛇游戏是一个经典的C语言代码实现的项目,大约500行代码。对于大家来说,贪吃蛇都玩过,但是,我们如何用代码来实现它呢?它包括哪些内容呢?我们往后讲一讲。

 

  •  在了解贪吃蛇之前,我们先要了解一下几个函数,它是写贪吃蛇的关键之处。(对与这几个函数,我不作展开来讲,大家可以登录下面这个网站自行登录查看。

cplusplus.com - The C++ Resources Networkicon-default.png?t=N7T8https://legacy.cplusplus.com/

 

  1.  控制台程序:mode
  2. 控制台屏幕上的坐标:COORD
  3. ⼀个Windows API函数:GetStdHandle
  4. 检索有关指定控制台屏幕缓冲区的光标⼤⼩和可⻅性的信息:GetConsoleCursorInfo
  5. 设置指定控制台屏幕缓冲区的光标的⼤⼩和可⻅性:SetConsoleCursorInfo
  6. 设置指定控制台屏幕缓冲区中的光标位置:SetConsoleCursorPosition
  7. 获取按键情况:GetAsyncKeyState
  8. 修改当前地区:setlocale
  • 有了这些函数的基础,我们的代码就相对轻松了许多。

接下来,就思考如何构建贪吃蛇

  • 要构建一个贪吃蛇游戏,首先就是要构建一个地图(大小、长和宽、里面的数字、颜色背景....),还有很多,它的地图里面还要细分位置的大小,以及数字的大小,位置的摆放。都应该要考虑在内的。地图的内部,还要有坐标的摆放,也就是长和宽。
  • 贪吃蛇游戏,就要有一个事物,也就是贪吃蛇。要包括它的蛇身,对于蛇身就要用到数据结构中的链表。(要有头节点,还要有用来维护蛇身的结构体)
  • 对于贪吃蛇,我们就需要用键盘来控制其走动的方向(需要enum来实现)。贪吃蛇我们就要控制其的死亡,也就是游戏的结束。
  • 贪吃蛇游戏是一个逐渐增长的游戏,这就需要食物的力量。我们可以在地图中随机放取食物(要用到rand函数)。
  • 大致的构建贪吃蛇就这么多的内容,其中还有一些细节的内容,比如:蛇的颜色,食物的种类,游戏的重复性...都可以用来实现贪吃蛇游戏的。

对于贪吃蛇游戏,我们有了大致的了解,接下来就是代码的实现了。让我们拭目以待吧。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何用个人电脑搭建一台本地服务器,并部署项目到服务器详细教程

服务器是一种高性能计算机,作为网络的节点,它存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。与普通计算机相比,服务器具有高速CPU运算能力、长时间可靠运行、强大I/O外部数据吞吐能力以及更好的扩展性。 服务器的主要…

【QT进阶】Qt Web混合编程之html、 js的简单交互

往期回顾 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用(图文并茂超详细介绍)-CSDN博客【QT进阶】Qt Web混合编程之QWebEngineView基本用法-CSDN博客【QT进阶】Qt Web混合编程之CMake VS2019编译并使用QCefView(图文并茂超详细版本&…

NSSCTF Round#22 Reverse个人专项赛 WP

1. ezcrypt(史) pyinstxtractor.py解包exe,然后pycdc反编译NSSCTF.pyc 得到的源码并不完整,但是重要的部分已经有了,就是一个blowfish加密 但是密钥是crypto.SomeEncode,这并不是字面意义的字符串&#x…

基于弹簧鞘复合纱和迁移学习算法的可穿戴人体重构和智能试衣系统

研究背景 在信息时代和元宇宙的背景下,虚拟服装设计对满足服装行业的个性化需求至关重要。与传统方法不同,虚拟试衣节省时间、方便客户,并提供多样化的款式。准确得测量人体围度并重构出人体的模型是虚拟试衣的关键。为了实现动态人体重构&a…

路径规划 | RRT结合APF算法快速探索随机树结合人工势场法的路径规划算法(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 RRT结合APF算法的matlab代码。地图为可以替换的栅格地图。代码是在复现华中科技大学发表的英文论文的基础上的进一步改进。RRT算法。人工势场算法。 1.原论文方法简介:针对快速探索随机树(RRT&…

用 Pytorch 训练一个 Transformer模型

昨天说了一下Transformer架构,今天我们来看看怎么 Pytorch 训练一个Transormer模型,真实训练一个模型是个庞大工程,准备数据、准备硬件等等,我只是做一个简单的实现。因为只是做实验,本地用 CPU 也可以运行。 本文包含…

C++ STL 容器 vector

目录 1. vector 对象2. vector 大小 size 和 容量 capacity3. vector 成员函数3.1 迭代器3.2 容量3.3 元素访问3.4 插入3.5 删除3.6 动态扩充与收缩 4. vector 迭代器失效问题总结其他补充 本文测试环境为 编译器 gcc 13.1 vector 是 STL 中的一个顺序容器,它给我们…

如何将静态网页资源“打包“成.exe或者.apk

Hello , 我是小恒不会java。最近有音乐播放器win桌面应用程序的需求,那就说说上手electron 又想到很多人对apk文件不太了解,apk文件就是安卓桌面应用程序,比如你手机现在打开的微信 当然,exe文件基本都清楚,windows可执…

正则表达式(Regular Expression)

正则表达式很重要,是一个合格攻城狮的必备利器,必须要学会!!! (参考视频)10分钟快速掌握正则表达式(奇乐编程学院)https://www.bilibili.com/video/BV1da4y1p7iZ在线测试…

React Hooks(常用)笔记

一、useState(保存组件状态) 1、基本使用 import { useState } from react;function Example() {const [initialState, setInitialState] useState(default); } useState(保存组件状态) :React hooks是function组件(无状态组件) &#xf…

再拓信创版图-Smartbi 与东方国信数据库完成兼容适配认证

近日,思迈特商业智能与数据分析软件 [简称:Smartbi Insight] V11与北京东方国信科技股份有限公司 (以下简称东方国信)CirroData-OLAP分布式数据库V2.14.1完成兼容性测试。经双方严格测试,两款产品能够达到通用兼容性要…

浪潮信息成功打造大规模、高性能、高可靠的单存储集群方案!

为帮助企业应对商业智能应用中面临的关于海量数据存储及实时分析的难题,浪潮信息日前通过技术研发,创新推出全球首个SAP HANA集群方案,该方案实现了最大可支持HANA集群服务器节点数量的翻倍,单存储即可支持16节点的,大…

图片高效批量管理,一键批量旋转150度,高效整理您的图片库

在数字化时代,我们的生活中充满了各种图片。从手机拍照到网络下载,从社交媒体到工作文档,图片无处不在。然而,随着图片数量的不断增加,如何高效管理这些图片,让它们有序、易于查找,成为了许多人…

Vue3从入门到实战:深度了解相关API

shallowRef 作用:创建一个响应式数据,但只对顶层属性进行响应式处理。 用法: let myVar shallowRef(initialValue); 特点:只跟踪引用值的变化,不关心值内部的属性变化。 shallowReactive 作用:创建一个…

【MySQL】表的基本约束

文章目录 1、约束类型1.1NOT NULL约束1.2UNIQUE:唯一约束1.3DEFAULT:默认值约束1.4PRIMARY KEY:主键约束1.5FOREIGN KEY:外键约束 2、表的设计2.1一对一2.2一对多2.3多对多 1、约束类型 关键字解释NOT NULL指示某列不能存储NULL值…

点赞列表查询列表

点赞列表查询列表 BlogController GetMapping("/likes/{id}") public Result queryBlogLikes(PathVariable("id") Long id) {return blogService.queryBlogLikes(id); }BlogService Override public Result queryBlogLikes(Long id) {String key BLOG_…

【C++航海王:追寻罗杰的编程之路】C++11(上)

目录 1 -> C11简介 2 -> 统一的列表初始化 2.1 -> {}初始化 2.2 -> std::initializer_list 3 -> 声明 3.1 -> auto 3.2 -> decltype 3.3 -> nullptr 1 -> C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C…

Debian

文章目录 前言一、使用root用户操作二、配置用户使用sudo命令三、添加桌面图标显示1.打开终端2.执行安装命令3.执行成功后重启4. 打开扩展,配置图标 四、图形化界面关闭和打开五、设置静态IP1.查询自己系统网络接口2.修改网络配置文件 总结 前言 Debian 系统在安装…

基于Springboot+Vue的Java项目-在线文档管理系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

RUOYI 若依 横向菜单

保留移动端适配 小屏适配 菜单权限等 可轻松进行深度自定义菜单样式 以及分布 仅支持横向布局 如需源码 教程等 ➕ wx 技术支持 wx : 17339827025