Linux字符版2048小游戏开发

轻松玩Linux,从写个2048玩玩开始,不多说,有注解有代码,就差你了,快上车!

1.简介:Linux上的2048;写个2048代码还能玩到2048,那你就是写得了代码,玩得了2048的2048程序员了。

2.准备:电脑有Linux系统就可以了,gcc,编辑器任意;

3.原理:主要是对一个4*4的数组的操作处理,还需要用到字符的输出显示,键盘输入的获取;

4.展示一下:

5.动手:

a.显示内容:

a1.打开屏幕,关闭屏幕

void open_screen(void)
{
	initscr(); //初始化字符屏幕
	cbreak(); //Ctrl + c
	noecho(); //不用回显 
	keypad(stdscr, TRUE); //使用功能键

}
void close_screen(void)
{
	endwin(); //关闭字符窗口
}

 a2.初始化一个放数组的窗口:

WINDOW *w_2048=NULL;

void init_window()
{
	w_2048 = newwin(4, 24, w_2048_y0, w_2048_x0);
}

a3.在刚刚的窗口内显示内容:

void init_window_h(void)
{
	w_2048 = newwin(2, 24, 4, 40);
	//指定位置显示字符
	wmove(w_2048, 0,5 ); 
	waddstr(w_2048,"hello 2048!");
	wmove(w_2048, 1,3 ); 
	waddstr(w_2048,"designed by lin");
	wrefresh(w_2048);
}

b.获取键盘输入:

#define LEFT 1
#define RIGHT 2
#define UP 3
#define DOWN 4
#define QUIT 10

int get_user_input()
{
	keypad(w_2048,true);//打开功能键(方向键等)
	int ch=wgetch(w_2048);
	keypad(w_2048,false);//功取消能键
	if(ch=='Q'||ch=='q')
		return QUIT;
	if(ch=='W'||ch=='w'||ch==KEY_UP)
		return UP;
	if(ch=='S'||ch=='s'||ch==KEY_DOWN)
		return DOWN;
	if(ch=='A'||ch=='a'||ch==KEY_LEFT)
		return LEFT;
	if(ch=='D'||ch=='d'||ch==KEY_RIGHT)
		return RIGHT;
	
}

c.数组处理:

随机数随机填充:

#define N 4
int matrix_2048[N][N]={
	0,0,0,0,
	0,0,0,0,
	0,0,0,0,
	0,0,0,0
};
void fill_a_number(void)
{
	srandom(time(NULL));//设置随机数种子
	//long int random();
	int k=random();
	k=k%4;
	int p=random();
	p=p%4;
	
	for(int i=0;i<4;i++)	//获取是否还有0
	for(int j=0;j<4;j++)
		if(matrix_2048[i][j]==0)
		num++;
	if(num==0)
		return;
	while(matrix_2048[k][p]!=0)
	{
		k=rando
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Super algorithm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值