用c语言基于Console实现2048游戏
为睢宁县等地区用户提供了全套网页设计制作服务,及睢宁县网站建设行业解决方案。主营业务为网站设计制作、
网站建设、睢宁县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!文章目录
- 用c语言基于Console实现2048游戏
- 项目描述
- 项目实现效果
- 项目实现库及方法
- 项目注意事项
- 项目优化
项目描述
《2048》是一款非常经典的数字益智游戏,而《2048》的初始数字则是由2+2组成的基数4。在操作方面的不同为一步一格的移动,变成更为爽快的一次到底。相同数字的方块在靠拢、相撞时会相加。系统给予的数字方块不是2就是4,玩家要想办法在这小小的16格范围中凑出“2048”这个数字方块。
项目实现效果
1.初始状态—在随机的空白处随机产生一个数
![](/upload/otherpic6/739782efc7fb8417967ba8853e67a2ee.jpg)
2.先上移动且合并
![](/upload/otherpic6/7af93592c6e4ca9bc4fcb0bf1a064da6.jpg)
3.先下移动且合并
![](/upload/otherpic6/1d35ca34555d71f133f21a65896ab45f.jpg)
![](/upload/otherpic6/8549caf85a4aa5fc6feab28581edb379.jpg)
4.先左向右合并及移动 同理
Tips :
- 无需回车,直接输入w-s-a-d代表上-下-左-右即可。
- ESC退出游戏。
项目实现库及方法
1.方块及轮廓的显现
- 首先是whie(1)产生的循环,该循环退出的条件就是游戏胜利或失败。也会创建一个二维数组模拟4 * 4的平台。并通过控制printf的格式控制打印出的形式。
- 其次注意每次再输完一个字母后会进行清屏操作保证以前的干扰信息不复存在。
- 再进行输入字母时,会进行一次判断,判断是否为既不移动也不合并,当答案为是时,会再次进行判断游戏失败或胜利否则光标不停地闪烁说明当前移动是无效的,等待下一次有效字符的输入。
2.随机数的产生
- 通过对及标准库的引用,产生随机数2或4至二维数组的随机一个空白处。同时,又利用数组开辟了一块连续的空间,并通过控制数组中2和4元素的个数之比来控制随机数产生的概率,使得基数2产生的概率较大。 用c语言产生随机数的方法
3.移动及合并的实现
- 主要利用数组遍历时所选取的方向不同实现元素的移动及合并。
- 移动先找到对应列或者行的第一个空白元素,然后进行元素的交换。
- 合并会在移动之后才进行,对应列或者行的上一个或者下一个是否与其相同,相同则进行合并,并在其中一个位置赋为0.
- 一次合并结束后会再次进行移动,避免产生新的空位。
4.游戏胜利及失败的判断
- 失败—当4 * 4的二维数组没有空白位置时结束程序。游戏失败判定要注意在占满数组的情况下需要进一步判断是否可以合并
- 胜利—当16个位置中产生了一个2048时即成功,退出程序。
项目注意事项
- goto 标号; 可以和if一起使用构成循环。
- 再进行输入字母时,要进行一次判断,判断是否为既不移动也不合并,当答案为是时,会再次进行判断游戏失败或胜利否则光标不停地闪烁说明当前移动是无效的,等待下一次有效字符的输入。
- 随机数的产生要注意随机的空白处,产生2或者4,不能把已有数据给覆盖。
- 移动时注意遍历方向的选取,如果不合适则会让某一个元素跳过之间的一个直接到达边界处。
- 一次合并结束后会再次进行移动,避免产生新的空位。
- 游戏失败判定要注意在占满数组的情况下需要进一步判断是否可以合并
项目优化
- 项目可以添加积分制。
- 项目可以选择两种模式4 * 4或者5 * 5。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享题目:用c语言基于Console实现2048游戏-创新互联
文章分享:
http://bjjierui.cn/article/cojced.html