c语言第一个小游戏:贪吃蛇小游戏01

hello啊大家好 今天我们用一个小游戏来增强我们的c语言!

那就是贪吃蛇

为什么要做一个贪吃蛇小游戏呢?

        因为这个小游戏所涉及到的知识有c语言的指针、数组、链表、函数等等可以让我们通过这个游戏来巩固c语言,进一步认识c语言。

一.我们先做准备工作

        需要用到ncurse这个老古董。要记住一般ncurses是在Linux系统上比较适配的,所以我们这边都是在Linux虚拟机里面运行的

        因为ncurse 的按键响应牛逼,但是我们并不要去了解ncurse这个东西,因为他已经被时代淘汰了,我们只需要去时候他的方向键锻炼我们c语言对数据结构的处理,和控制语句的使用才是我们的目的。

要用ncurse的时候 头文件为#include <curses.h>

initscr();  ncurse初始化函数,调用 curses 库函数来初始化屏幕,开启 curses 模式,让程序能够对屏幕进行操作

printw()  在ncurse模式下的printf

getch()  等待用户输入,如果没有这句话,程序就退出了,看不到运行的结果,也就是看不到printw里面的话

        getch 函数会等待用户输入,且输入时不会在屏幕上回显字符

Endwin  程序退出,调用改函数来恢复shell终端的显示,如果没有这句话,shell终端字乱码,坏掉

编译ncurse程序的时候 要在后面添加-lcures    gcc xxx.c -lcurses

我们这边输入这个代码,我们理解一个各个函数的作用

第一个getchc = getch(); 使用 getch 函数从用户输入获取一个字符,并将其赋值给变量 cgetch 函数会等待用户输入,且输入时不会在屏幕上回显字符。

运行后输入一个k变成这样,此时还没有程序结束,因为第二个getch()这里的 getch 一般是为了等待用户按下一个键,防止程序执行完马上退出,方便用户查看输出结果。

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

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

相关文章

实战项目1(02)

目录 任务场景一 【sw1和sw2的配置如下】 任务场景二 【sw3的配置】 【sw4-6的配置】 任务场景一 某公司有生产、销售、研发、人事、财务等多个部门&#xff0c;这些部门分别连接在两台交换机&#xff08;SW1和SW2&#xff09;上&#xff0c;现要求给每个部门划分相应的V…

Kubernetes生产实战(十四):Secret高级使用模式与安全实践指南

一、Secret核心类型解析 类型使用场景自动管理机制典型字段Opaque (默认)自定义敏感数据需手动创建data字段存储键值对kubernetes.io/dockerconfigjson私有镜像仓库认证kubelet自动更新.dockerconfigjsonkubernetes.io/tlsTLS证书管理Cert-Manager可自动化tls.crt/tls.keykube…

Linux: 信号【阻塞和捕捉信号】

Linux&#xff1a; 信号【阻塞和捕捉信号】 &#xff08;一&#xff09;阻塞信号1.信号其他相关的概念2.在内核中表示3.sigset_t4.信号集操作函数5.sigprocmask&#xff08;设置阻塞&#xff09;6.sigpending&#xff08;得到未决状态&#xff09; &#xff08;二&#xff09;捕…

MySQL 数据库集群部署、性能优化及高可用架构设计

MySQL 数据库集群部署、性能优化及高可用架构设计 集群部署方案 1. 主从复制架构 传统主从复制&#xff1a;配置一个主库(Master)和多个从库(Slave)GTID复制&#xff1a;基于全局事务标识符的复制&#xff0c;简化故障转移半同步复制&#xff1a;确保至少一个从库接收到数据…

Java 多态:原理与实例深度剖析

一、多态概述 在 Java 面向对象编程体系中&#xff0c;多态是构建灵活、可扩展程序的核心机制之一&#xff0c;与封装、继承并称为面向对象的三大特性。其本质是同一操作作用于不同对象&#xff0c;产生不同的执行结果&#xff0c;这使得程序在运行时能根据实际对象类型动态调…

解决使用宝塔Linux部署前后端分离项目遇到的问题

问题一&#xff1a;访问域名转圈圈&#xff0c;显示404,403 没有解决跨域问题&#xff0c;在后端yml中设置content&#xff1a;/prod&#xff08;生产环境&#xff09;&#xff0c;在前端.env文件中将http&#xff1a;//127.0.0.1:8080/替换为公网IP&#xff0c;并在vite.conf…

《Python星球日记》 第54天:卷积神经网络进阶

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、深度CNN架构解析1. LeNet-5&#xff08;1998&#xff09;2. AlexNet&#x…

旅游设备生产企业的痛点 质检系统在旅游设备生产企业的应用

在旅游设备制造行业&#xff0c;产品质量直接关系到用户体验与企业口碑。从景区缆车、观光车到水上娱乐设施&#xff0c;每一件设备的安全性与可靠性都需经过严苛检测。然而&#xff0c;传统质检模式常面临数据分散、流程不透明、合规风险高等痛点&#xff0c;难以满足旅游设备…

MySql(进阶)

一.数据库约束 约束类型 NOT NULL - 指示某列不能存储 NULL 值。 (not null不能为NILL) UNIQUE - 保证某列的每行必须有唯一的值。 &#xff08;unique唯一值&#xff09; DEFAULT - 规定没有给列赋值时的默认值。 &#xff08;default为空给定默认值&#xff09; PRIMARY…

Three.js + React 实战系列 - 联系方式提交表单区域 Contact 组件✨(表单绑定 + 表单验证)

对个人主页设计和实现感兴趣的朋友可以订阅我的专栏哦&#xff01;&#xff01;谢谢大家&#xff01;&#xff01;&#xff01; 在现代网页中&#xff0c;一个精致的 Contact 区域不仅仅是表单的堆砌&#xff0c;更是用户与我们建立联系的第一印象。 在本节课中&#xff0c;我…

UOJ 164【清华集训2015】V Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;另有序列 h h h&#xff0c;初始时 h a ha ha. 有 m m m 个操作分五种&#xff1a; add ⁡ ( l , r , v ) \operatorname{add}(l,r,v) add(l,r,v)&#xff1a;…

C++开发过程中的注意事项详解

目录 C++开发过程中的注意事项详解 一、内存管理:避免泄漏与资源浪费 1.1 使用智能指针管理动态内存 1.2 避免手动内存管理的陷阱 1.3 利用RAII机制管理资源 1.4 容器与内存分配 二、安全性:防御攻击与未定义行为 2.1 输入验证与安全编码 2.2 使用安全的通信协议 2…

Git 时光机:修改Commit信息

前言 列位看官都知道&#xff0c;Git 的每一次 git commit&#xff0c;其中会包含作者&#xff08;Author&#xff09;和提交者&#xff08;Committer&#xff09;的姓名与邮箱。有时可能会因为配置错误、切换了开发环境&#xff0c;或者只是单纯的手滑&#xff0c;导致 commi…

QSFP+、QSFP28、QSFP-DD接口分别实现40G、100G、200G/400G以太网接口

常用的光模块结构形式&#xff1a; 1&#xff09;QSFP等效于4个SFP&#xff0c;支持410Gbit/s通道传输&#xff0c;可通过4个通道实现40Gbps传输速率。与SFP相比&#xff0c;QSFP光模块的传输速率可达SFP光模块的四倍&#xff0c;在部署40G网络时可直接使用QSFP光模块&#xf…

好用的播放器推荐

以下是一些好用的播放器推荐&#xff0c;按照不同平台和使用场景分类&#xff1a; 电脑端 VLC Media Player 特点&#xff1a;开源、跨平台&#xff0c;支持几乎所有的音视频格式&#xff0c;无需额外安装解码器。具备强大的功能&#xff0c;如播放列表管理、视频和音频滤镜、…

Vue基础(8)_监视属性、深度监视、监视的简写形式

监视属性(watch)&#xff1a; 1.当被监视的属性变化时&#xff0c;回调函数(handler)自动调用&#xff0c;进行相关操作。 2.监视的属性必须存在&#xff0c;才能进行监视&#xff01;&#xff01; 3.监视的两种写法&#xff1a; (1).new Vue时传入watch配置 (2).通过vm.$watc…

AI服务器的作用都有哪些?

根据网络环境的飞速发展&#xff0c;人工智能技术逐渐入驻到各个行业当中&#xff0c;其中AI服务器则是一种专门用来运行人工智能算法和模型的硬件设备&#xff0c;通常具备高性能计算、大容量存储和并行计算等多种功能&#xff0c;本文就来详细讲解一下AI服务器的作用&#xf…

[250508] Linux 内核瘦身:弃用 i486 及早期 586 CPU 支持

目录 Linux 内核计划精简&#xff1a;将移除对古董级 CPU 的支持 Linux 内核计划精简&#xff1a;将移除对古董级 CPU 的支持 核心动态&#xff1a; Linux 内核开发社区正计划一项重要的代码清理工作&#xff0c;目标是移除对非常古老的 i486 及早期 586 (如早期奔腾) CPU 架构…

ROM详解

一、ROM基础原理 定义与特性 ROM&#xff08;Read-Only Memory&#xff0c;只读存储器&#xff09;是一种非易失性存储器&#xff0c;数据在制造或编程后永久保存&#xff0c;断电后不丢失。其核心特性为数据不可修改&#xff08;或需特殊条件修改&#xff09;。 存储原理&…

解决虚拟机挂起之后的网络问题

相信很多人都有遇到过自己在VM上面手滑点了个挂起然后就连不了网络的情况吧&#xff0c;我也遇到了&#xff0c;下面是我的解决办法&#xff0c;希望对大家有所帮助&#xff01; 我运行完如下&#xff1a; 基本上出现绿色的就说明网络连上啦&#xff01;