C语言贪吃蛇

#只讲逻辑不讲一些基础,基础大概过一遍就行#

project-one: 无 (gitee.com)仓库里面有原代码

一、基础工作

        1、先将你的编译器换成32位环境,也就是x86,

        如果是控制台主机窗口则管,若不是需要改为控制台主机窗口

打开运行窗口后点击那个,向下的箭头

再点击设置

默认终端应用程序改为控制台主机

        2、创建三个文件,两个.c文件,一个.h文件。下图供参考

        3、为了避免麻烦直接包含所需要用到的头文件

4、在你的 .c 文件中包含 .h的头文件

5、完成头文件里的预先设定

关于蛇结构体的成员的创建

6、进入你的主函数里,我们需要先干的几件事,随机数生成(生成食物时会用到)、修改窗口大小(方便后续的绘图)、本地化、隐藏光标,游戏运行函数

窗口大小

我的窗口大小差不多就是这么大,到绘制地图那里细讲大小的调整。

本地化的设置就需要头文件locale.h,可直接照抄影响不大

隐藏光标函数

        名字是自己起的可更改,里面的函数就是系统自己的函数了,不能改名字,用到的头文件 windows.h

7、来到我的测试函数了

可以先不用管下面的代码,到时候你可按照自己逻辑设计

二、开始界面函数

我调用了两个函数实现开始界面

1、欢迎函数

        需要说的只有一个光标定位函数(在地图绘制那里可以找到),光标定位函数,指定光标的起始位置打印。

我这个写出来就是这样,有点歪了,你们可以微调,需要改什么注意光标的位置就行。

这个俩个任意键继续是因为那两个暂停的代码。

2、地图绘制

        建议在excel表格中画出你整个整个窗口的大小,我这个因为一开始写的时候我就直接先画的游戏的地图,外加改了很多次仅供参,

        值得注意的是一个 纵坐标对应两个横坐标

        黄色和绿色分别是地图方块,如下图,绿色自己就是 y坐标(纵坐标),橙色是x坐标,因为一个汉字占两个空间,

光标定位函数是自己写的,直接用就完了。

我这里一共 36 个方块一个方块两个 x 坐标, x 和 y 都是从 0 开始的

        所以x坐标到 70 结束包含 70

        y坐标只看中间,为29个方块,一共是31个方块,最下面的 y坐标是30

 三、初始化,及帮组信息打印

界面展示

函数主体展示

1、打印帮助信息

没什么好说,找到对应的位置打印出帮助信息,如果打印不打调整坐标,可能是超过窗口范围了。

2、创建蛇身体

身体是身体的符号,我做了区分的

先创建头,再创建4的身体,创建的时候连在一起,相当于是一个单链表,x左边得是2的倍数就行。

3、初始化食物

我的初始化食物函数,自带打印功能,所以在吃掉一个食物时可以直接调用

4、信息初始化

方向设为左,状态正常,一个食物分数1分,总分数 0,睡眠时间200毫米。

5、打印出蛇身

四、游戏运行逻辑

按键判断函数宏,如果这个键被按过返回1否则为0

1、按键判断

2、蛇每走一步我们需要干嘛,Snakemove();

1、连接节点

2、新节点判断

撞墙和撞自己修改状态就行。由end函数来审判

五、结束操作

end game()函数

 末尾操作

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

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

相关文章

构建宠物咖啡馆:SpringBoot框架的实现策略

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理基于Spring Boot的宠物咖啡馆平台的设计与…

Authentication Lab | IP Based Auth Bypass

关注这个靶场的其它相关笔记:Authentication Lab —— 靶场笔记合集-CSDN博客 0x01:IP Based Auth Bypass 前情提要 有些开发人员为了图方便,会给站点设置一个 IP 白名单,如果访问站点的用户的 IP 在白名单内,则允许访…

PDSCH(物理下行共享信道)简介

文章目录 PDSCH(物理下行共享信道)简介1. Transport block CRC attachment2. LDPC base graph selection3. Code block segmentation And Code Block CRC Attachment4. Channel Coding5. Rate Matching6. Code Block Concatenation7. Scrambling8. Modul…

react自定义prolayout的展开收起

关于prolayout组件:ProLayout高级布局🏆 让中后台开发更简单 包含 table form 等多个组件。https://procomponents.ant.design/components/layout // tsx文件 import ProLayout from ant-design/pro-layout; ... const [collapsed,setCollapsed]useStat…

全网首发Windows Server 2019 AD 域控降级与退域的全面指南

哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)。 “ 大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…(每天更新不间断,福利…

微信小程序——婚礼邀请函

一、界面设计 首页: 精美的婚礼主题背景图,可能是新人的婚纱照或浪漫的插画。温馨的欢迎语,如 “欢迎参加我们的婚礼”。一个 “打开邀请函” 的按钮,引导用户进入邀请函详情页面。 邀请函详情页面: 顶部展示新人的照片…

【数据结构与算法】Divide and Conquer

4.4 Divide and Conquer 1) 概述 分治思想 将大问题划分为两个到多个子问题子问题可以继续拆分成更小的子问题,直到能够简单求解如有必要,将子问题的解进行合并,得到原始问题的解 之前学过的一些经典分而治之的例子 二分查找快速排序归并…

【C语言】数组练习

【C语言】数组练习 练习1:多个字符从两端移动,向中间汇聚练习2、二分查找 练习1:多个字符从两端移动,向中间汇聚 编写代码,演示多个字符从两端移动,向中间汇聚 练习2、二分查找 在⼀个升序的数组中查找指…

国庆作业

day1 1.开发环境 Linux系统GCCFDBmakefilesqlite3 2.功能描述 项目功能: 服务器:处理客户端的请求,并将数据存入数据库中,客户端请求的数据从数据库进行获取,服务器转发给客户端。 用户客户端:实现账号的注册、登…

【专题】数据库系统的基本原理

1. 数据库系统概述 1.1. 数据库系统的应用 电信业、银行业、金融业、销售业、联机的零售商、大学、航空业、人力资源、制造业等等。 1.2 数据库系统的概念 (1) 数据(Data) 数据是数据库存储的基本对象。是描述现实世界中各种具体事物或抽象概念的、可…

数据结构-5.1.树的定义和基本术语

一.树的基本概念: 1.根结点:最顶层的结点,有且仅有一个,没有前驱; 2.叶子结点:不能再有子结点,没有后继; 3.结点:用于存数据; 4.也有前驱和后继的说法&…

Spring Boot快速入门:HelloWorld示例

Spring Boot是一个非常流行,受欢迎的框架,它不仅常用于构建传统的单体式MVC应用程序,同时也非常适合用于搭建微服务架构。对于 Web 应用程序,Spring Boot 提供了用于创建 REST API、处理 HTTP 请求和使用 Thymeleaf 等模板引擎呈现…

介绍一下SAP 函数 NUMBER_GET_NEXT的妙用——获取SAP编码OBJECT

NUMBER_GET_NEXT 是 SAP 中用于获取下一个可用编号的函数模块,通常用于生成唯一的编号或序列号。这个函数模块的妙用在于它能够确保编号的唯一性和连续性,适用于需要生成订单号、发票号或其他业务对象编号的场景。 我在写ABAP程序时经常要调用这个函数来…

Oracle 数据库安装及配置

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

LSTM的变体

一、GRU 1、什么是GRU 门控循环单元(GRU)是一种循环神经网络(RNN)的变体,它通过引入门控机制来控制信息的流动,从而有效地解决了传统RNN中的梯度消失问题。GRU由Cho等人在2014年提出,它简化了…

45岁被裁员的程序员,何去何从?

在当今快速变化的技术行业,职业生涯的稳定性受到挑战。在45岁被裁员,对很多程序员来说,可能是一种惊慌失措的体验。然而,这个阶段也可以被视为一个重新审视和调整方向的机会。本文将对可能的出路进行全方位的分析,并提…

PHP泛目录生成源码,可生成长尾关键词页面,带使用方法视频教程

介绍: 真正的好东西,搞网站优化seo从业必备。可以快速提升网站权重,带来的流量哗哗的 PHP泛目录生成源码 可生成新闻页面和关键词页面 带使用方法视频教程 泛目录可以用来提升网站收录和排名 合理运用目录可以达到快速出词和出权重的效果…

[简单实践]Noisy Print - 自制基于加性噪声模型的简易降噪器

NoisyPrint 最近在学习的过程中,突然想起一个在Adobe Audition中用过的功能。 为什么会想到这个功能呢,因为在我使用DeepFilter的过程中,我发现对于一些低信噪比的信号来说,DeepFilter很容易出现过拟合现象,导致音源…

使用Git生成SSH密钥教程(附Git常用命令)

一、为什么使用SSH? 使用 Git 的 SSH(安全外壳协议)主要有以下几个原因:1. 安全性:SSH 是一种加密的网络协议,用于在网络中安全地运行网络服务。使用 SSH,所有传输的数据都会被加密&#xff0c…

Mysql高级篇(下)——数据库备份与恢复

Mysql高级篇(下)——数据库备份与恢复 一、物理备份与逻辑备份1、物理备份2、逻辑备份3、对比4、总结 二、mysqldump实现逻辑备份1、mysqldump 常用选项2、mysqldump 逻辑备份语法(1)备份一个数据库(2)备份…