您当前的位置:首页 > 计算机 > 编程开发 > C语言

2048小游戏源码下载、源码解析和设计思路

时间:01-02来源:作者:点击数:

在《2048小游戏演示和说明》一节中,我们对 2048 小游戏进行了介绍和演示,这节就来说一下它的设计思路。

2048 小游戏源代码下载地址(百度网盘):https://pan.baidu.com/s/1i4Ty7K5    密码: 636s

2048.zip
c2a684810de63b1ff84ed27d07362fdc.zip (1.88 KB)

各位读者不妨先将源码下载下来浏览一遍,记住关键的几个函数,整理一下不了解的知识点,做到心中有数。

整体思路

2048 小游戏整体的设计思路是:

  • 初始化游戏,在随机两个位置产生2或4;
  • 每次按下键盘方向键,都会对游戏状态进行判断;
  • 如果方格中充满了数字,并且无法再合并,提示游戏失败,退出游戏;
  • 如果合并后的数字出现2048,提示游戏胜利并退出游戏;
  • 如果游戏方格中还有空格或者有可以合并的数字,根据按下的方向进行合并和移动,并且在一个随机位置产生2或4。

程序的难点

1) 判断键盘的输入

用 windows.h 头文件中的 GetAsyncKeyState()函 数来获取键盘的输入。

#include <windows.h>
int upArrow = 0; 
int downArrow = 0; 
int leftArrow = 0; 
int rightArrow = 0; 
int direction = 0; 
upArrow = GetAsyncKeyState(VK_UP);  //如果键盘的输入是↑,则函数返回值为1
downArrow = GetAsyncKeyState(VK_DOWN);  //如果键盘的输入是↓,则函数返回值为1
leftArrow = GetAsyncKeyState(VK_LEFT);  //如果键盘的输入是←,则函数返回值为1
rightArrow = GetAsyncKeyState(VK_RIGHT);   //如果键盘的输入是→,则函数返回值为1

2) 数字的移动和合并

数字的合并和移动都是根据键盘输入的方向进行。如果是按下的↑键,则把每一行的数字向上移动,如果上一行的方格为空则直接移动,如果上一行的方格的数字与移动的数字相同则合并,如果两个数字不同则数字的位置不变。其他方向类似,注意每次把数字移动后要把原来位置的数字设置为0。

3) 游戏显示

每次显示更新后的游戏方格之前,都要把之前的显示内容清空,这时候应该调用system("cls")函数。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门