C语言在linux下制作2048游戏

curses是一个在Linux/Unix下广泛应用的图形函数库,作用是可以绘制在DOS下的用户界面和漂亮的图形。具体到操作就是在编译的时候要加上 -lcurses 选项,安装方式如下:

sudo apt-get install libncurses5-dev

2048 游戏里最关键的就是消掉方块和在屏幕任意位置输出数据,也就是说游戏的逻辑和显示两个部分。


第一步,引入头文件,定义全局变量,声明所需框架的函数原型。

#include<stdio.h>
#include<stdlib.h>
#include<curses.h>	//curses绘图库
#include<time.h>	//时间库,用于生成随机数种子
#include<unistd.h>	//POSIX系统API库

int a[4][4] = {0};

int empty;

void draw();		//绘制游戏界面
void play();		//逻辑主体
void init();		//初始化函数
void draw_one(int y,int x);				//绘制单个数字
int game_over();	//游戏结束

第二步,编写主函数

int main()
{
    init();
    play();
    endwin();		//<curses.h>关闭curses并重置tty(结束curses编程时,最后调用的一个函数)

    return 0;
}

第三部,实现框架函数内容。

(1)init()初始化函数

curses工作在屏幕,窗口和子窗口之上。屏幕是设备全部可用显示面积(对终端是该窗口内所有可用字符位置),窗口与具体例程有关。如基本的stdscr窗口等。

curses使用两个数据结构映射终端屏幕,stdscr和curscr。stdscr是“标准屏幕”(逻辑屏幕),在curses函数库产生输出时就刷新,是默认输出窗口(用户不会看到该内容)。curscr是“当前屏幕”(物理屏幕),在调用refresh函数是,函数库会将curscr刷新为stdscr的样子。

使用initscr();和endwin();两个函数对函数库进行初始化和重置。

void init()
{
    int x,y;

    initscr();		//<curses.h>初始化curses库和tty
					//(在开始curses编程之前,必须使用initscr()这个函数来开启curses模式)
    cbreak();		//<curses.h>设置cbreak模式,字符一键入,直接传给程序
    noecho
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值