C语言——在Linux环境下基于Ncurse 实现贪吃蛇小游戏(二)地图规划及编程实现

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

地图规划

地图大小:20*20
地图竖直方向边界:|
地图水平方向边界:–
贪吃蛇身子:[]
贪吃蛇食物:##
效果图:
在这里插入图片描述

地图的编程实现

#include <curses.h>
//初始化Ncurse函数
void initNcurse()
{
        initscr();
        keypad(stdscr,1);
}
//界面打印函数
void gamePic()
{
         int hang;
         int lie;
         
         for(hang = 0; hang <= 20; hang++)
         {
         		//首行和尾行打印
                 if(hang == 0 || hang == 20)
                 {
                         for(lie = 0; lie < 20; lie++)
                        {
                                 printw("--");
                        }
                        printw("\n");
                }
                //中间行打印
                if(hang >= 0 && hang <= 19)
                 {
                         for(lie = 0; lie <= 20; lie++)
                        {
                                if(lie == 0 || lie == 20)
                                {
                                        printw("|");
                                }else{
 
                                 printw("  ");
                                 }
                         }
                         printw("\n");

                }
         }
         printw("By God!!!!\n");
}
int main()
{ 
		//函数调用
         initNcurse();
         gamePic();

         getch();
         endwin();
         return 0;
 }                                

通过之前的操作我们可以看到并且有了一个疑问,我们在这里用了printw();静态打印了出来贪吃蛇游戏的初始界面,那我们用printf();函数一样可以实现。
问题是:我们到时候现实的不仅仅只有地图,还有贪吃蛇的身子以及食物,但是蛇和食物不是静态的,所以我们必须用一种扫描的方式扫描行跟列以便在对应的位置显示对应的事物,所以不能用写死的方式,那我们要如何实现呢?

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

相关推荐

linux平台c语言实现贪吃蛇小游戏

编译命令 gcc snake.c -lncurses -lpthread

linux开源游戏_5个适用于Linux的开源益智游戏

linux开源游戏 传统上,游戏是Linux的弱点之一。 近年来,由于Steam,GOG和其他将商业游戏引入多个操作系统的努力,这种情况有所改变,但是这些游戏通常不是开源的。 当然,可以在开源操作系统上玩游戏,但这对于开源纯粹主义者而言还不够好。 本文介绍益智游戏。 我已经写了关于街机风格的游戏以及棋盘和纸牌游戏的文章 。 在以后的文章中,我计划介绍赛车,角色扮演以及策略和模拟游戏。 A...

cumj63710的博客 951

从Protocol到硬件控制:揭秘高通UEFI中ABL与XBL的协作机制

本文深入解析了高通UEFI架构中ABL与XBL的协作机制,重点探讨了Protocol通信在硬件控制中的关键作用。通过对比传统GPIO控制方式,揭示了Protocol架构在安全性、可维护性和灵活性方面的优势,并提供了关机充电场景的实战案例分析及调试技巧。

weixin_29185199的博客 431

c 语言读取地图信息,C++ unordered_map获取(访问)元素详解

对于 unordered_map,可以在下标运算符中使用键来获取它所对应对象的引用。例如:people["Jim"] = 22; //Set Jim's age to 22;people["May"] = people["Jim"]; //Set May's age to Jim's++people ["Joe"] ; //Increment Joe's agepeople ["Kit"] = p...

weixin_33982972的博客 2601

海思ISP实战:YUV Sharpen参数调试全解析

本文深入解析了在海思ISP平台上进行YUV Sharpen参数调试的实战经验。文章以海思3516EV300芯片为例,详细拆解了EdgeFiltStr、TextureFreq等核心参数的作用与协同策略,并重点阐述了如何通过ISO联动调试,在图像清晰度与噪声抑制之间取得最佳平衡,为图像调试工程师提供了宝贵的避坑指南和实战参考。

grape的博客 209

VMware桥接模式实战:用手机热点给Linux虚拟机共享网络(附WiFi适配技巧)

本文详细介绍了在移动办公场景下,如何为VMware中的Linux虚拟机配置桥接模式,以通过手机热点共享网络。文章深入解析了桥接模式在无线环境下的工作原理,提供了从主机端准备、VMware设置到Linux虚拟机内部配置的完整实战步骤,并针对手机热点的特殊性,分享了MTU优化、DNS配置及常见网络问题的诊断与解决方案,帮助用户实现稳定高效的移动虚拟化办公。

2y3u4i5o6p的博客 1196

C语言制作的迷宫游戏

之前有许多人来问我C语言能不能写个迷宫类的游戏,我也是思来想去,觉得必须安排上 #include<stdio.h> #include<string.h> #include<malloc.h> #define row 1024 #define col 1024 //定义 typedef struct Maze{ int map[row][col]; int information[row][col]; }Maze; typedef struct Point{ int

suqieer的博客 665

Python逆向爬取Tik Tok,MsToken,X-Bogus以及signature

tiktok作为字节海外的自媒体平台,具有很非常大的价值,本文旨在教会大家实现Tik Tok的签名获取以及数据的最终爬取。

weixin_74305707的博客 3270

在OpenGL场景中实现小地图功能(www.c3dn.net)

    想象一下,我们在原始森林里寻找宝藏,没有地图,没有GPS,那结果应该只有一种:不但找不到目标地点,而且很容易迷失方向。同样,在OpenGL绘制的场景中漫游,往往只能看到局部的场景,而无法确定自己现在处于大场景中哪个位置。所以,一个具有定位功能的GPS是十分必要的。   接下来,我们也基于OpenGL和MFC开发一个简约版的GPS,以便实时指示我们漫游时当前所在的位置。 实现效果如下:   实现技术: VC++ 、MFC、GDI、OpenGL 实现步骤: 1.在MFC下

江南孤鹜——“知行合一”的Software Developer 3989

【NTN 卫星通信】使用地面网络和卫星网络接入的终端应用场景

卫星接入有广覆盖的特点, 可以改善地面接入网覆盖或无线条件差的地区(例如多径干扰)的服务可用性。对于高速移动中需要实时业务的终端,如IMS语音/视频会议,可以通过地面接入和卫星接入同时实现与5G系统的双连接,在地面接入网不可用的情况下获得连续可靠的业务。

weixin_43603524的博客 2558

8.9华为OD机试真题 新系统 - 灯带颜色变换 (Java/Py/C/C++/Js/Go)

8.9华为OD机试真题 新系统 - 灯带颜色变换 (Java/Py/C/C++/Js/Go)

算法大师! 670

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

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

qq_62361050的博客 3116

TriCore架构-基于TC397在SOTA过程中AB-SWAP切换底层原理

TC397的SOTA升级机制通过硬件地址重映射实现,利用MMU将逻辑地址动态映射到不同物理地址。其PFlash支持标准/备用地址映射,通常使用PF0+PF1+PF4空间以便于OTA处理。升级时,新固件自动写入非活动分区(A/B分区切换),由地址转换函数完成逻辑地址到物理地址的转换。系统重启后根据寄存器选择启动区域,实现安全无缝的固件更新。

xiandang8023的博客 490

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

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

dearzhangxp的博客 1260

【100%通过率】2023华为od机试C卷【电脑病毒感染】Python 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 3033

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C语言小项目-贪吃蛇

C语言小项目-贪吃蛇

AspringQ的博客 1094

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

c的菜菜菜鸟级小游戏之贪吃蛇

Linux环境下基于Ncurse图形库的c语言小游戏。

weixin_48554101的博客 847

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C语言——贪吃蛇

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

weixin_61226442的博客 872

c语言—贪吃蛇

贪吃蛇

2301_79405674的博客 1139

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

一、Ncurses简介curses是一个在命令行下面的图形函数库,而ncurses的意思是 new curses。当对使用curses函数库的程序进行编译时,你必须在程序中包含头文件curses.h,并在编译命令行中用-lcurses选项来链接curses函数库。Ncurses相关函数简介二、贪吃蛇代码实现。

Cai_A的博客 707

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

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

m0_59933408的博客 1173

萌新入门C语言第一个项目 《贪吃蛇小游戏》#C语言学习#Linux系统编程

贪吃蛇小游戏》是我学习完C语言后的关于C语言的项目,是检验我的C语言编程能力的项目,因此我记录一下我的成长,写一下我是如何完成《贪吃蛇小游戏》的制作的。ncurses是一个开源的文本用户界面(TUI)库,旨在为终端应用程序提供图形化的用户界面。它允许开发者创建基于文本的交互式应用程序,如命令行界面、终端游戏等。ncurses库提供了一系列函数来控制终端屏幕的输出和输入。它可以处理终端窗口的位置、大小、颜色、字符缓冲区以及键盘和鼠标输入等。

CallmeBrotherMa的博客 467

【C语言】——基于Ncurse图形库的C语言小程序

【C语言】——基于Ncurse图形库的C语言小程序

m0_51706315的博客 1465

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

对于线程需要注意以下几点:添加线程库:main函数中定义线程:和main函数中创建线程:pthread_create(&th1,NULL,函数名1,NULL);和pthread_create(&th2,NULL,函数名2,NULL);对于需要成为线程的两个函数,函数类型需要是void *在最后编译时,除了要加 -lncurses,还要加-lpthread。

mjmmm的博客 610

C语言版贪吃蛇控制台Linux游戏NCurse

C语言版贪吃蛇控制台Linux游戏NCurse

优快云_Xian的博客 750

贪吃蛇小游戏-------基于ncurse图形库的小游戏(Linux环境)

承上:c语言基础,数据结构链表基础,c变量,流程控制,函数,指针,结构体等;启下:Linux系统编程,文件编程,进程,线程,通信,第三方包等。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值