[项目实战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

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

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

相关文章

浏览器报错:您的连接不是私密连接,Kubernetes Dashboard无法打开

问题描述 部署完成Kubernetes Dashboard后&#xff0c;打开HTTPS的web页面&#xff0c;Chrome和Edge浏览器都无法正常加载页面&#xff0c;会提示您的连接不是私密连接的报错。 ​​​​​​​​​​​​ 原因&#xff1a; 浏览器不信任这些自签名的ssl证书&#xff0c;为了…

关于量子神经网络的思考

其实在写这篇文章之前想了很多&#xff0c;主要是想法太超前&#xff0c;有可能颠覆未来机器智能行业甚至是影响世界。 1、计算机的历史 计算机的历史可以追溯到20世纪中叶&#xff0c;最早的电子计算机如ENIAC和EDVAC采用了冯诺依曼架构&#xff08;John von Neumann Archit…

docker pull(拉取镜像)的时候,无法下载或者卡在Waiting的解决方法

docker pull的时候&#xff0c;卡在Waiting的解决方法 一般情况&#xff08;大部分镜像都可以拉取&#xff09;更换镜像源 进一步&#xff08;如es等拉取不到&#xff09;在镜像同步站搜索详细步骤 还可以在挂载的时候&#xff0c;让其下载对应的版本 一般情况&#xff08;大部…

PHP二维数组去除重复值

Date: 2025.01.07 20:45:01 author: lijianzhan PHP二维数组内根据ID或者名称去除重复值 代码示例如下&#xff1a; // 假设 data数组如下 $data [[id > 1, name > Type A],[id > 2, name > Type B],[id > 1, name > Type A] // 重复项 ];// 去重方法 $dat…

注册中心如何选型?Eureka、Zookeeper、Nacos怎么选

这是小卷对分布式系统架构学习的第9篇文章&#xff0c;第8篇时只回答了注册中心的工作原理的内容&#xff0c;面试官的第二个问题还没回答&#xff0c;今天再来讲讲各个注册中心的原理&#xff0c;以及区别&#xff0c;最后如何进行选型 上一篇文章&#xff1a;如何设计一个注册…

SQL使用视图

本文将介绍什么是视图&#xff0c;它们怎样工作&#xff0c;何时使用它们。 1. 视图 视图是虚拟的表。与包含数据的表不一样&#xff0c;视图只包含使用时动态检索数据的查询。 说明&#xff1a;SQLite 的视图 SQLite 仅支持只读视图&#xff0c;所以视图可以创建&#xff…

Three.js - 打开Web 3D世界的大门

文章目录 前言一、Three.js 的起源与背景二、Three.js 的特点三、Three.js 的核心组件详解四、实际应用案例结语 前言 Three.js 是一个基于JavaScript的库&#xff0c;它极大地简化了使用WebGL创建3D图形的过程。通过封装复杂的WebGL API&#xff0c;Three.js为开发者提供了一…

恒压恒流原边反馈控制芯片 CRE6289F

CRE6289F 系列产品是一款内置高压 MOS 功率开关管的高性能多模式原边控制的开关电源芯片。较少的外围元器件、较低的系统成本设计出高性能的交直流转换开关电源。CRE6289F 系列产品提供了极为全面和性能优异的智能化保护功能&#xff0c;包括逐周期过流保护、软启动、芯片过温保…

开源 AI 智能名片 2+1 链动模式商城小程序在商业营销中的心理博弈与策略应用

摘要&#xff1a;在当今竞争激烈的商业环境中&#xff0c;理解消费者心理对营销成败起着关键作用。本文聚焦于消费者 “占便宜” 心理&#xff0c;深入探讨开源 AI 智能名片 21 链动模式商城小程序如何利用这一心理&#xff0c;在 “双十一”“双十二” 等购物热潮背景下&#…

01 数据分析介绍及工具准备

数据分析介绍及工具准备 一、工具准备二、下载和使用Anaconda三、jupyter notebook常用快捷键 一、工具准备 数据科学库 NumPy&#xff0c;SciPy&#xff0c;Pandas&#xff0c;Scikit-Learn 数据可视化库 Matplotlib&#xff0c;Seaborn 编译器 Jupyter Notebook 数据科…

opencv摄像头标定程序实现

摄像头标定是计算机视觉中的一个重要步骤&#xff0c;用于确定摄像头的内参&#xff08;如焦距、主点、畸变系数等&#xff09;和外参&#xff08;如旋转矩阵和平移向量&#xff09;。OpenCV 提供了方便的工具来进行摄像头标定。下面分别给出 C 和 Python 的实现。 1. C 实现…

后端Java开发:第十三天

第十三天&#xff1a;继承 - 面向对象的核心概念 欢迎来到第十三天的学习&#xff01;今天&#xff0c;我们将深入探讨 Java 中的 继承&#xff08;Inheritance&#xff09;&#xff0c;这是面向对象编程的四大基本特性之一。继承是指一个类&#xff08;子类&#xff09;通过继…

java项目之网上租贸系统源码(springboot+mysql+vue)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的网上租贸系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于Spring Boot的网上租贸…

协方差矩阵

协方差矩阵是一个对称矩阵&#xff0c;用来描述多个随机变量之间的协方差关系。协方差反映了两个随机变量如何共同变化的趋势&#xff0c;协方差矩阵将这种关系扩展到了多维数据。 1. 定义 假设有一个 n 维随机向量 &#xff0c;协方差矩阵 Σ 定义为&#xff1a; 其中&#…

spring boot controller放到那一层

在 Spring Boot 应用程序中&#xff0c;Controller 层通常被放置在应用程序的 表示层&#xff08;Presentation Layer&#xff09; 或 用户界面层&#xff08;UI Layer&#xff09; 中。Controller 层的主要职责是处理用户的 HTTP 请求&#xff0c;并将请求转发给服务层进行业务…

计算机网络之---局域网

什么叫局域网 局域网&#xff08;LAN&#xff0c;Local Area Network&#xff09; 是指在一个相对较小的区域内&#xff0c;如家庭、办公室、学校、企业等&#xff0c;连接多个计算机和设备的网络。局域网的特点是覆盖范围小、传输速度快、构建成本较低。 局域网的主要特点&…

Spring Boot + Jasypt 实现application.yml 属性加密的快速示例

Jasypt(Java Simplified Encryption)是一个专为Java应用程序设计的开源加密库,旨在简化加密和解密流程,保护敏感数据如密码、API密钥等。 jasypt-spring-boot-starter允许开发者在Spring Boot应用中轻松地实现加密和解密功能。 本篇介绍使用 jasypt-spring-boot-starter 以…

HarmonyOS开发:传参方式

一、父子组件传参 1、父传子&#xff08;Prop方式&#xff09; 父组件代码 Entry Component struct ParentComponent {State parentMessage: string Hello from Parent;build() {Column() {ChildComponent({ message: this.parentMessage });}} } 子组件代码 Component s…

deepin系统下开放指定端口

一、安装ufw 若已安装则跳过 sudo apt-get install ufw二、查看防火墙状态 sudo ufw status三、打开防火墙 sudo ufw enable四、开放端口 sudo ufw allow 6654/tcp五、windows下测试远程端口 telnet 192.168.1.22 6654六、关闭防火墙 sudo ufw disable附上ufw的全部命令…

微信小程序中使用 TypeScript 定义组件时,Component 函数确实需要多个类型参数

在微信小程序中使用 TypeScript 定义组件时&#xff0c;Component 函数确实需要多个类型参数&#xff0c;而不仅仅是一个。这些参数包括&#xff1a; Properties&#xff1a;组件的属性&#xff08;props&#xff09;类型。 Data&#xff1a;组件的内部数据类型。 Methods&am…