c语言 2048自动版,用C语言写一个控制台版的2048

f3e546e9f335c93b17d69c1be15cae93.png

先说说所需要用到的头文件:

#include (不必多说)

#include (system等)

#include (memset函数,非常有用)

#include (要使用到_getch(void);)

程序内经常用到bool,但是C语言中没有bool,因此需要定义一个类型bool:

typedef int bool;

#define true 1

#define false 0

定义图像大小:

#define ROW 5

#define COL ROW

定义各类数据:

空数:int BOX_NONE = 0;

用于判断某个位置是否有数字 : int g_iBox[ROW][COL];

保存游戏状态 :int game_state = 0;

应注意事项:

产生随机位置的数字:

*p_i[rand() % count] = (1 + rand() % 2) * 2;

//产生随机数,rand() % count指的是随机数/0数后的余数,最终范围变成【0到count-1】

//后者同理 范围为 (1+[0,1])*2 = 2或4

//p_i已经有那些0值的位置了

位置交换:

//交换两个位置的值,一般是和0进行交换

两数字做加法:

//结合两个数,res是移动的那个

显示该游戏界面:

efe935e1f6638854481b8d2151cd4740.png

产生随机位置的数字:

29a39575981445b0e54efeaa1621d3d2.png

位置交换:

b5a4a91d31355575fb6ae4a4d5b2e91f.png

两数字做加法:

fac5a874ecd3aee6439ec3195b488194.png

最重要的是移动函数,移动函数中应该要注意每个位置的数字都要被操作,有数字的位置要和最边际的为零的位置进行交换。详见下面的整体代码:

127ac6b1af8c69093f26146ecf2ed71a.png

00c3cd1ae3c320107fa1c522d4e6fd30.png

cdd584ebfa44da6f5c15cb34fb909480.png

294a77e94a1bb2976f89e2f643dbade0.png

09cf30b2d5803755fdd503979f32c41e.png

518ff4e94853558b0aa94d04a3f8fccc.png

e55ab58bb90baf108fe043a655496e31.png

50c5bcb29d55e22feb8dcdc4e30d22af.png

======================================

若需要本文章的代码,可上我的博客:

http://blog.sina.com.cn/s/blog_64559fb40102wt1n.html

或者是

http://user.qzone.qq.com/83493903/2

=======================================

欢迎大家关注我的公众号,预览更多有趣的文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值