C语言——在Linux环境下基于Ncurse 实现贪吃蛇小游戏(一)关于Ncurse

C语言——贪吃蛇小游戏 基于Ncurse图形库的C语言小游戏 阅读详情

Ncurse库

程序用到了一个Ncurse库,由于C语言本身自带的可以获取用户输入的函数例如getchar()\scanf()\gets()等需要我们再在输入完成以后按回车才能结束输入,对我们的程序带来了不便,所以我们用Ncurse库来实现对蛇进行实时的响应和界面的刷新,具体介绍和安装请自行百度。
下面试一些Ncurse使用例子:

#include <curses.h> //头文件

int main()
{
        initscr();//ncurse界面初始化函数
        printw("This is acurses window.\n");//ncurse下的printf
        getch();//等待用户输入,如果没有这句话,程序就退出,看不到运行结果
        endwin();//程序退出,调用函数来恢复Shell终端的显示
        return 0;
}

执行结果:
在这里插入图片描述

在Linux中编译Ncurse程序时要加上-lcurses,如下:
gcc xxx.c -lcurses
在这里插入图片描述

ncurses输入输出

我们可以试着编写:

#include <curses.h>
#include <stdio.h>

int main()
{
        char c;
        initscr();
        c = getch();
        putchar('\n');
        printw("You Input:%c.\n",c);
        getch();
        endwin();
        return 0;
}

执行结果:
在这里插入图片描述

ncurse上下左右键获取

在这里插入图片描述
在ncurse中使用,keypad();获取功能键的输入。
例:keypad(stdscr,1);

#include <curses.h>
#include <stdio.h>

int main()
{
        int key;
        initscr();
        while(1){
        key = getch();
        printw("You Input:%d.\n",key);
        }
        
        endwin();
        return 0;
}

执行结果:
在这里插入图片描述
例二:

#include <curses.h>

int main()
{
        int key;
        initscr();
        keypad(stdscr,1);
        while(1){
        key = getch();
        switch(key){
                case 0402:
                         printw("DOWN\n");
                                break;

                case 0403:
                         printw("UP\n");
                                break;

                case 0404:
                         printw("LEFT\n");
                                break;

                case 0405:
                         printw("RIGHT\n");
                                break;
                }
        }

        endwin();
        return 0;
}

执行结果:在这里插入图片描述

Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上) Linux环境下基于Ncurse图形库的贪吃蛇小游戏 这个小游戏的意义? 这个小游戏对C语言基础、数据结构链表基础、C变量、流程控制、函数、指针、结构体等有一个很好的知识汇总学习。也是对Linux基础操作的一个简单学习。 linux环境下代码如何编写,如何编译,如何运行,如何简单的创建程序和文件夹。有利于后续的Linux系统编程的学习 这个小游戏是对C语言基础和Linux系统编程的学习起到一个承上启下的作用。 为什么要基于Ncurse图形库? 因为Ncurses有可以快速获取键盘的输入,用于控制蛇身的移动, 阅读详情

相关推荐

讲解使用ncurses开发Linux界面程序.pptx

讲解使用ncurses库开发Linux界面程序的方法和主要函数,包含一些C编程示例

linux下c++使用ncurses库的一个简单实例

技术含量不是很高,主要是为了表达下在linux下c++如何使用ncurses库编程 #include #include #include //#define DEBUG #ifdef DEBUG #include #include #endif int main(void) { int x,y; std::vector msg; msg.push_back("H

XuanZuoNuo的专栏 3188

ncurses界面实例

使用ncurses库编写的类menuconfig的图形界面,有菜单和表单,可以用来简单的显示和修改参数

如何使用ncurses库并在Linux上编译?

initscr():初始化屏幕,进入curses模式。这是使用ncurses库时首先要调用的函数。keypad():启用或禁用特殊按键的读取。当设置为TRUE时,可以读取如方向键、功能键等特殊按键。noecho():关闭按键回显,即用户输入的字符不会显示在屏幕上。printw():在当前光标位置打印文本。refresh():将缓冲区的内容刷新到屏幕上,使更改立即可见。getch():等待用户按键并返回按键的ASCII值。如果按下的是特殊按键(如方向键),则返回相应的宏定义值。endwin()

yangyangyiyang_的博客 1036

Linux环境下贪吃蛇游戏

Linux环境下贪吃蛇源代码,基于C语言实现的。用到知识点包括双链表,文件操作,frame buffer接口,键盘接口等等。实现了随机生成实物,游戏暂停,运行,退出状态显示,退出时提示是否保存,下次运行时可以加载。也可以手动设定起始长度,起始速度,以及速度和成绩的显示。

linux c语言写的坦克大战小游戏

学习了Linux的终端控制之后编写的一个小游戏,使用WASD这几个键来控制坦克在终端下移动,按j键开炮,目前一次只能有一个炮弹飞出,按e键退出。非Linux用户请勿下载,该程序只能运行在Linux终端下(也许Unix也可以)。

ncurses库:一个框架例程源码

ncurses库:一个框架例程源码

编程之道在明明德在亲民在止于至善 2338

Linux环境C语言实现2048小游戏

Linux环境C语言实现2048小游戏,支持方向键控制,记录步数和相应得分

【C语言】C语言小项目—贪吃蛇

  贪吃蛇最为一款游戏,它使通过人操作键盘控制蛇身走位实现游戏效果的,所以按键响应必然少不了。在我们以前接触过的关于C语言按键响应方面的东西中,我们知道,C语言自带的 scanfscanfscanf 、 getchargetchargetchar 和 getsgetsgets 等库函数接收键盘输入的话,必须按下相应的键,再按下回车才能完成接收,很显然,这对于一款游戏是很不友好的,所以我们就要通过 ncursencursencurse 库来引入比较实用的按键响应功能,它封装了一个库,不需要按下回车,就能够接收

qq_62361050的博客 3116

吃金豆游戏

吃金豆游戏 主角Pacman由玩家控制,通过键盘的上下左右箭头键控制它的运动方向,它的嘴巴开口表示当前的运动方向,它可以在空格中前进,经过金豆时能吃掉,碰到墙时停下来。 怪物Monster由程序控制,它也只能在空格中前进,但不会吃掉金豆。怪物的运动方向由程序随机变换。怪物的运动比主角快。 游戏结束有两种情况:1。当主角把全部金豆吃完,胜利;2。当主角碰上怪物,失败。

linux下俄罗斯方块小游戏(c语言)

linux下俄罗斯方块小游戏(c语言)

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

今天我们将通过制作贪吃蛇小游戏来增强C语言技能。贪吃蛇游戏涉及C语言的指针、数组、链表和函数等核心概念,是巩固和深入理解C语言的绝佳方式。我们将使用ncurses库,这是一个在Linux系统上适配的库,特别适合处理按键响应和屏幕操作。虽然ncurses已逐渐被淘汰,但它的功能对于锻炼C语言的数据结构处理和控制语句使用非常有用。我们将介绍几个关键函数,如initscr()用于初始化屏幕,printw()用于在ncurses模式下打印,getch()用于等待用户输入,以及endwin()用于程序退出时恢复终端显

你的潜力远比你想象的更大,别给自己设限。 1552

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6727

# Linux环境基于Ncurse图形库的C语言小游戏

Linux环境下基于Ncurses图形库的贪吃蛇小游戏 Ncurses简介和贪吃蛇小游戏的制作过程

dearzhangxp的博客 1260

一文搞懂【Linux 搭建 Dread Hunger 服务器】附本体及Docker部署集群方案

看直播发现了五花八门的开服器和版本,一时兴起按官方文档进行了搭建尝试,所以我的版本基于官方Stream2024.01.10更新的版本,也就是停服时的玩法,应该可以根据mod和补丁魔改成更那些开服器一样的版本,本文不做谈论,注重服务器搭建,毕竟8个人不可能在一个局域网里乱象:首先,我看了大量教程视频,一类是开服器的推广,另一类自建的基本采用Windows搭建,我觉得最离谱的是大部分教程都会教你买一台远程Windows虚拟机???

LHmine的博客 3987

微信PC端Multi文件夹数据库解析:语音消息导出与转换实战指南

本文提供了一份详细的微信PC端语音消息导出与转换实战指南。通过解析Multi文件夹中的MediaMSG数据库,指导用户定位、解密数据库,并利用Python脚本精准提取SILK格式语音,最终转换为通用的WAV或MP3格式,实现个人语音数据的本地备份与处理。

garlic的博客 582

基于Ncurse图形库贪吃蛇小游戏

在Linux环境下,基于Ncurse图形库的C语言小游戏。主要用到了C语言链表还有结构体知识。 一、贪吃蛇地图代码实现 void gamePic(){ int hang; int lie; move (0,0); for(hang=0;hang<20;hang++){ if(hang==0){ for(lie=0;lie<20;lie++){ printw("--"); } printw("\n"); for(

weixin_42952472的博客 253

Workbench中基于nCode的列车转向架随机振动疲劳寿命预测方法

本文详细介绍了在ANSYS Workbench中结合nCode进行列车转向架随机振动疲劳寿命预测的完整方法。通过几何清理、模态分析、PSD载荷定义及随机振动求解,并重点阐述了nCode中Dirlik等疲劳算法的选择与应用,为轨道交通关键部件的可靠性设计提供了系统的仿真分析流程与工程实践指导。

weixin_29234423的博客 473

【Linux】基于Ncurse图形库的贪吃蛇(C语言)

ncurses(new curses)是一个程序库,它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面。在ubuntu低版本中运行不容易乱码,在高版本中gcc时,删去原先a.out多编译几次,并等待一段时间,也不会出现乱码。//判断地图上的点是否是蛇身节点。vi /usr/include/curses.h 可查看ncurse的宏定义。运行效果链接:https://v.douyin.com/6ooTQgt/如果传过来的i和j与行和列相等,则通过gamePic()打印输出。如何使用ncurse?

Apibro的博客 4177

STM32F407与W5100S的SPI通信实战:从硬件连接到TCP服务器搭建

本文详细介绍了STM32F407微控制器通过SPI接口驱动W5100S以太网模块,并搭建TCP服务器的完整实战过程。内容涵盖硬件连接、SPI驱动配置、网络参数设置及Socket编程,重点解析了SPI通信时序、W5100S寄存器操作和TCP连接管理,为嵌入式网络通信开发提供实用指南。

weixin_29173777的博客 194

基于OpenClaw的自动化文件管理与文档分类系统设计与实现

本文介绍了一种基于OpenClaw的自动化文件管理与文档分类系统。系统采用三层架构设计,包含数据层、逻辑层和应用层,核心组件涵盖文件扫描、处理、分类、移动等功能。技术选型上使用Python/FastAPI作为后端,结合PostgreSQL/Elasticsearch/MinIO存储方案,并整合scikit-learn/PyTorch等AI技术实现智能分类。系统实现了文件递归扫描、增量扫描、元数据提取等功能,通过文件哈希和修改时间检测变化。该方案能有效提升文件管理效率,实现文档的自动化分类与智能管理。

一键难忘的博客 754

Linux环境基于Ncurse图形库的C语言贪吃蛇小游戏

Linux环境基于Ncurse图形库的C语言贪吃蛇小游戏

weixin_48326567的博客 399

UNet改进(6):基于注意力机制的多尺度医学图像分割方法

本文提出了一种集成多尺度注意力机制的UNet改进模型UNetWithAttention,用于提升医学图像分割性能。该模型在标准UNet架构基础上,设计了并行3×3、5×5、7×7卷积核的多尺度注意力模块,通过特征拼接和Sigmoid激活生成注意力权重,实现了对不同尺寸病变的自适应关注。模型采用分离式设计,将特征提取与特征选择解耦,在编码器-解码器各阶段嵌入注意力模块。实验表明,该方法在视网膜血管分割和肺结节检测任务中优于标准UNet,Dice系数和IOU分别提升2.6%和4.1%,同时保持计算效率。

2501_91516851的博客 1324

linux下通过C语言实现贪吃蛇

linux下通过C语言实现贪吃蛇

m0_59933408的博客 1173

C# 上位机 YOLO 实战:从数据采集到目标识别的全流程拆解

本文以工业螺栓缺陷检测为例,完整拆解了C#上位机+YOLO从数据采集到目标识别的全流程。数据采集:保证图像质量,线程安全采集,必要时归档数据;预处理:适配YOLO模型输入格式,复用对象减少内存开销;推理解析:正确解析张量结果,过滤低置信度目标;落地环节:可视化展示结果,实现工业交互和日志记录。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1454

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C语言——贪吃蛇

目的:巩固C语言的基础需要的库:ncurse、pthread。

weixin_61226442的博客 872

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: C语言学习笔记—链表(五)链表的动态创建
下一篇: C语言——在Linux环境下基于Ncurse 实现贪吃蛇小游戏(二)地图规划及编程实现
Akzeptieren
博客等级 码龄8年 65粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值