当前位置: 首页 > news >正文

[项目实战2]贪吃蛇游戏

目录

贪吃蛇游戏::

一、游戏效果及功能实现:

                                        1.规则

                ​​​​​​​        ​​​​​​​        ​​​​​​​        2.基本功能实现

                ​​​​​​​        ​​​​​​​        ​​​​​​​        3.技术要点

                ​​​​​​​        ​​​​​​​        ​​​​​​​        4.实现思路

                ​​​​​​​        ​​​​​​​        ​​​​​​​        5.游戏效果呈现

二、Win32 API介绍

                ​​​​​​​        ​​​​​​​        ​​​​​​​        1.WindowsAPI函数简单介绍

                ​​​​​​​        ​​​​​​​        ​​​​​​​        2.控制台程序(Console)

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        cmd命令窗口打开方式

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        控制cmd控制台的长度宽度命令

                       ​​​​​​​        ​​​​​​​        ​​​​​​​         title命令

                ​​​​​​​        ​​​​​​​        ​​​​​​​        3.vs中的控制台窗口

                ​​​​​​​        ​​​​​​​        ​​​​​​​        4.设置控制台相关属性

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        system函数执行系统命令5.控制台屏幕上的坐标COORD

                ​​​​​​​        ​​​​​​​        ​​​​​​​        5.GetStdHandle函数

                ​​​​​​​        ​​​​​​​        ​​​​​​​        6.GetConsoleCursorInfo函数(检测光标大小和可见性)

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        CONSOLE_CURSOR_INFO

                ​​​​​​​        ​​​​​​​        ​​​​​​​        7.SetConsoleCursorInfo(设置光标大小和可见性)

                ​​​​​​​        ​​​​​​​        ​​​​​​​        8.SetConsoleCurPosition(设置光标坐标位置)

                ​​​​​​​        ​​​​​​​        ​​​​​​​        9.GetAsyncKeyState(获取键盘虚拟键值)

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        检测键盘输入的内容:"虚拟键代码"

三、贪吃蛇游戏设计与分析

                ​​​​​​​        ​​​​​​​        ​​​​​​​        1.地图/界面

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        本地化

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        类项

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        setlocale函数

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        打印宽字符

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        地图坐标

                ​​​​​​​        ​​​​​​​        ​​​​​​​        2.蛇身与食物

                ​​​​​​​        ​​​​​​​        ​​​​​​​        3数据结构设计

四、具体代码实现

                ​​​​​​​        ​​​​​​​        ​​​​​​​        1.文件管理

                ​​​​​​​        ​​​​​​​        ​​​​​​​        2.头文件的声明准备

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        define预处理

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        蛇的状态、游戏状态的枚举类型声明

                ​​​​​​​        ​​​​​​​        ​​​​​​​        3.控制台的定位

                ​​​​​​​        ​​​​​​​        ​​​​​​​        4.隐藏光标

                ​​​​​​​        ​​​​​​​        ​​​​​​​        5.游戏界面初始化

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​欢迎界面

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        游戏说明界面

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        游戏准备界面

                ​​​​​​​        ​​​​​​​        ​​​​​​​        6.蛇的初始化

                ​​​​​​​        ​​​​​​​        ​​​​​​​        7.食物的生成

                ​​​​​​​        ​​​​​​​        ​​​​​​​        8.游戏的初始化

                ​​​​​​​        ​​​​​​​        ​​​​​​​        9.蛇的移动

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        蛇头出现

                ​​​​​​​        ​​​​​​​        ​​​​​​​        10.吃食物

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        判定食物

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        蛇移动、吃食物变长的逻辑

                 ​​​​​​​        ​​​​​​​        ​​​​​​​        11.死亡判定

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        撞墙死亡

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        撞到自身死亡

                ​​​​​​​        ​​​​​​​        ​​​​​​​        12.键盘操控相关

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        加速减速

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        空格暂停

                ​​​​​​​        ​​​​​​​        ​​​​​​​        13.GameStart函数

                ​​​​​​​        ​​​​​​​        ​​​​​​​        14.GameRun函数

                ​​​​​​​        ​​​​​​​        ​​​​​​​        15.GameEnd函数

五、贪吃蛇源代码展示:

                        ​​​​​​​        ​​​​​​​        snake.h

                        ​​​​​​​        ​​​​​​​        snake.c

                        ​​​​​​​        ​​​​​​​        ​​​​​​​test.c


贪吃蛇游戏::

一、游戏效果及功能实现:

1.规则

2.基本功能实现

3.技术要点

4.实现思路
5.游戏效果呈现

二、Win32 API介绍

1.WindowsAPI函数简单介绍

2.控制台程序(Console)

        cmd命令窗口打开方式

        控制cmd控制台的长度宽度命令

        title命令

3.vs中的控制台窗口

4.设置控制台相关属性

        system函数执行系统命令
5.控制台屏幕上的坐标COORD

6.GetStdHandle函数

7.GetConsoleCursorInfo函数(检测光标大小和可见性)

        CONSOLE_CURSOR_INFO

8.SetConsoleCursorInfo(设置光标大小和可见性)

9.SetConsoleCurPosition(设置光标坐标位置)

10.GetAsyncKeyState(获取键盘虚拟键值)

        检测键盘输入的内容:"虚拟键代码"

三、贪吃蛇游戏设计与分析

1.地图/界面

<locale.h>本地化

类项

setlocale函数

打印宽字符

地图坐标

2.蛇身与食物

3数据结构设计
四、具体代码实现

1.文件管理
2.头文件的声明准备

define预处理

蛇的状态、游戏状态的枚举类型声明

3.控制台的定位

4.隐藏光标

5.游戏界面初始化

        欢迎界面

        游戏说明界面

        游戏准备界面

6.蛇的初始化

7.食物的生成

8.游戏的初始化

9.蛇的移动

        蛇头出现

10.吃食物

        判定食物

        蛇移动、吃食物变长的逻辑

 11.死亡判定

        撞墙死亡

        撞到自身死亡

12.键盘操控相关

        加速减速

        空格暂停

13.GameStart函数

14.GameRun函数

15.GameEnd函数

五、贪吃蛇源代码展示:

        Snake.h

        Snake.c

        Test.c

相关文章:

[项目实战2]贪吃蛇游戏

目录 贪吃蛇游戏&#xff1a;&#xff1a; 一、游戏效果及功能实现&#xff1a; 1.规则 ​​​​​​​ ​​​​​​​ ​​​​​​​ 2.基本功能实现 ​​​​​​​ ​​​​​​​ ​​​​​​​ 3.技术要点 ​​​​​​​…...

关于FPGA中添加FIR IP核(采用了GOWIN EDA)

文章目录 前言一、IP核二、MATLAB文件三、导出系数COE文件1.设计滤波器2.用官方的matlab代码或者直接用文本文件 四、进行模块化设计源文件 前言 FIR滤波器的特点是其输出信号是输入信号的加权和&#xff0c;权值由滤波器的系数决定。每个系数代表了滤波器在特定延迟位置上的“…...

1. 使用springboot做一个音乐播放器软件项目【前期规划】

背景&#xff1a; 现在大部分音乐软件都是要冲会员才可以无限常听的。对于喜欢听音乐的小伙伴&#xff0c;资金又比较紧张&#xff0c;是那么的不友好。作为程序员的我&#xff0c;也是喜欢听着歌&#xff0c;敲着代码。 最近就想做一个音乐播放器的软件&#xff0c;在内网中使…...

【Dify】Dify自定义模型设置 | 对接DMXAPI使用打折 Openai GPT 或 Claude3.5系列模型方法详解

一、Dify & DMXAPI 1、Dify DIFY&#xff08;Do It For You&#xff09;是一种自动化工具或服务&#xff0c;旨在帮助用户简化操作&#xff0c;减少繁琐的手动操作&#xff0c;提升工作效率。通过DIFY&#xff0c;用户能够快速完成任务、获取所需数据&#xff0c;并且可以…...

【Rust自学】10.8. 生命周期 Pt.4:方法定义中的生命周期标注与静态生命周期

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 10.8.1. 方法定义中的生命周期标注 还记得在上一篇文章 10.7. 生命周期 Pt.3 中所提到的省略生命周期的三条规则吗&#xff1a; 规则1&…...

121 买入股票的最佳时机

思路1&#xff1a; 买的那天一定是卖的那天之前的最小值。 每到一天&#xff0c;维护那天之前的最小值即可。 假设第一天是最小值&#xff0c;最大值初始化为0&#xff0c;当以后某天的价格小于最小值时&#xff0c;将最小值更新 当天价格大于最小值&#xff0c;说明有利可图…...

PID学习资料

TI公司的CONTROLSUITE https://www.ti.com.cn/tool/cn/CONTROLSUITE学点PID专栏-小麦大叔PID控制器算法系列TI公开培训(中文字幕) 电机控制&#xff0c;PI控制器&#xff0c;PID控制器和现场定向控制 书籍&#xff1a; Advanced PID Control先进PID控制及其MATLAB仿真Practic…...

采用标准化的方式开展设计-研发中运用设计模式

概述 实现规范化、标准化的引导式设计&#xff0c;以业务需求为输入&#xff0c;识别业务特点&#xff0c;并通过引导式设计&#xff0c;找到最适合的设计模式、具体方案&#xff0c;汇总成为应用的设计&#xff0c;拉齐各应用的设计一的致性。 采用标准化的方式开展设计…...

【Linux系列】并发与顺序执行:在 Linux 脚本中的应用与选择

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Scala语言的数据库交互

Scala语言的数据库交互 引言 在当今互联网应用的开发中&#xff0c;数据库几乎是每一个应用程序中不可或缺的一部分。选择合适的编程语言和工具与数据库进行交互&#xff0c;对于提升开发效率和应用性能至关重要。Scala作为一种现代的多范式编程语言&#xff0c;结合了面向对…...

字节青训十五题-Java-数字字符串格式化

问题 问题描述 小M在工作时遇到了一个问题&#xff0c;他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式&#xff0c;并且保留小数部分。小M还发现&#xff0c;有时候输入的数字字符串前面会有无用的 0&#xff0c;这些也需要精简掉。请你帮助小M编写程…...

搭建一个本地轻量级且好用的学习TypeScript语言的环境

需求说明 虽然 TypeScript 的在线 Playground 很方便 https://www.tslang.com.cn/play/&#xff0c;但毕竟是在浏览器中使用&#xff0c;没有本地的 IDE 那么顺手。所以我想搭建一个本地类似 Playground 的环境&#xff0c;这样在学习 TypeScript 的过程中&#xff0c;可以更方…...

apex安装

安装过程复杂曲折&#xff0c;网上说的很多办法&#xff0c;貌似成功了&#xff0c;实际还是没起作用。 先说成功过程&#xff0c;执行下面命令&#xff0c;安装成功&#xff08;当然&#xff0c;前提是你要先配置好编译环境&#xff09;&#xff1a; &#xff08;我的环境&a…...

会员制电商创新:开源 AI 智能名片与 2+1 链动模式的协同赋能

摘要&#xff1a;本文聚焦于电商领域会员制的关键作用&#xff0c;深入探讨在传统交易模式向数字化转型过程中&#xff0c;如何借助开源 AI 智能名片以及 21 链动模式商城小程序&#xff0c;实现对会员数据的精准挖掘与高效利用&#xff0c;进而提升企业的营销效能与客户洞察能…...

Vue 3 和 Electron 来构建一个桌面端应用

我们将使用 Vue 3 和 Electron 来构建一个桌面端应用&#xff0c;该应用可以通过 Websocket 与服务器进行通信&#xff0c;并实现心跳检测、客户端上线、获取资产信息以及修改资产状态的功能。以下是实现步骤的概述&#xff1a; 项目结构&#xff1a;创建一个 Vue 3 项目&…...

生物医学信号处理--绪论

前言 参考书籍&#xff1a;刘海龙&#xff0c;生物医学信号处理&#xff0c;化学工业出版社 生物医学信号分类 1、由生理过程自发或者诱发产生的电生理信号和非电生理信号 • 电生理信号&#xff1a;ECG/心电、EEG/脑电、EMG/肌电、 EGG/胃电、 EOG/眼电 • 非电生理信号&am…...

STM32之CAN通讯(十一)

STM32F407 系列文章 - CAN通讯&#xff08;十一&#xff09; 目录 前言 一、CAN 二、CAN驱动电路 三、CAN软件设计 1.CAN状态初始化 2.头文件相关定义 3.接收中断服务函数 4.用户层使用 1.用户层相关定义 2.发送数据 3.接收数据 1.查询方式处理 2.中断方式处理 3…...

在macOS上安装MySQL

macOS的MySQL有多种不同的形式&#xff1a; 1、本机包安装程序&#xff0c;它使用本机macOS安装程序&#xff08;DMG&#xff09;引导您完成MySQL的安装。有关详细信息&#xff0c;请参阅第2.4.2节&#xff0c;“使用本机包在macOS上安装MySQL”。您可以将包安装程序与macOS一…...

netty解码器LengthFieldBasedFrameDecoder用法详解

Netty Netty是一个高性能、异步事件驱动的网络应用程序框架,它提供了对并发和异步编程的抽象,使得开发网络应用程序变得更加简单和高效。 在Netty中,EventLoopGroup是处理I/O操作的多线程事件循环器。在上面的示例中,我们创建了两个EventLoopGroup实例:bossGroup和worker…...

在循环链表中用头指针和用尾指针的好处

循环链表是一种特殊的链表结构&#xff0c;其中最后一个节点的指针指向链表的头部&#xff0c;形成一个环。这种结构在某些情况下可以提供便利&#xff0c;特别是在需要循环访问元素或者实现循环队列时。使用头指针和尾指针来操作循环链表各有其优势&#xff1a; 使用头指针的…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展&#xff0c;养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下&#xff0c;而且难以实现精准监控和管理。为了提升尾水处理的效果和效率&#xff0c;同时降低人力成本&#xff0c;某大型水产养殖企业决定…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量数据库中的关键作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架构简介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...

Selenium 查找页面元素的方式

Selenium 查找页面元素的方式 Selenium 提供了多种方法来查找网页中的元素&#xff0c;以下是主要的定位方式&#xff1a; 基本定位方式 通过ID定位 driver.find_element(By.ID, "element_id")通过Name定位 driver.find_element(By.NAME, "element_name"…...

OpenGL-什么是软OpenGL/软渲染/软光栅?

‌软OpenGL&#xff08;Software OpenGL&#xff09;‌或者软渲染指完全通过CPU模拟实现的OpenGL渲染方式&#xff08;包括几何处理、光栅化、着色等&#xff09;&#xff0c;不依赖GPU硬件加速。这种模式通常性能较低&#xff0c;但兼容性极强&#xff0c;常用于不支持硬件加速…...