如何用C语言写一个控制台版的2048,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
先说说所需要用到的头文件:
#include <stdio.h>(不必多说)
#include <stdlib.h>(system等)
#include <string.h>(memset函数,非常有用)
#include <conio.h>(要使用到_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是移动的那个
显示该游戏界面:
产生随机位置的数字:
位置交换:
两数字做加法:
最重要的是移动函数,移动函数中应该要注意每个位置的数字都要被操作,有数字的位置要和最边际的为零的位置进行交换。
详见下面的整体代码:
关于如何用C语言写一个控制台版的2048问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。