(更新中……)
参考博客:https://blog.csdn.net/qq_39151563/article/details/104283217
由于放在一篇会导致篇幅太长,所以分成了几篇。
(可能有个10篇吧=.=)
本篇介绍游戏背景和游戏流程图,具体功能部分仅涉及环境准备。
一、游戏背景
-
思路很简单的游戏:
在线试玩 http://www.2048123.com
-
试玩截图:
-
游戏的本质是根据玩家键盘(或其他)输入的值对一个 4 * 4 的二维矩阵进行移动、合并、检查等操作。
-
编译环境:Dev C++ 和 EGE图形库(网上自己搜索一下,有详细的安装流程的)
-
编程语言:C++
-
丰富的图形只是数据的映射,编程语言只是思想实例化的工具,关键还是在于数据处理
-
环境准备:
-
定义数据:
- 4*4矩阵
- 空格数
- 方向
#include
using namespace std; int grid[4][4];// 4*4矩阵 int EmptyBlock = 16;//空格数 int dir;//方向 int main() { return 0; } -
调试函数(为了方便给 grid 赋了初值)
-
打印函数-PrintGrid()
!要注意一点:二维数组遍历的时候图形上是(j, i)对应到数组取值上是grid/[i/]/[j/]
这一点要是不注意会在后面的代码翻大车!!!
-
计算空格函数-CalculateEmpty()
#include
using namespace std; int grid[4][4]= {{0,1,2,3}, {0,1,2,3}, {0,1,2,3}, {0,1,2,3},};// 4*4矩阵 int EmptyBlock = 16;//空格数 int dir;//方向 //1. 打印函数-PrintGrid() void PrintGrid() { for(int i=0; i<4; i++)//行 { for(int j=0; j<4; j++)//列 { cout << grid[i][j] << "t"; } cout << endl; } cout<< endl; } //2. 计算空格函数-CalculateEmpty() int CalculateEmpty() { int cnt = 0; for(int i=0; i<4; i++) for(int j=0; j<4; j++) if(grid[i][j]==0) cnt++; return cnt; } int main() { PrintGrid(); cout << "EmptyBlock = " << CalculateEmpty() << endl; return 0; } -
根据流程图可以把其分为以下几个模块:
- 1-根据 dir 的值对 grid 进行操作
- 2-键盘输入
- 3-在随机位置添加数值
- 4-游戏结束检测
-
接下来几篇稿子就是实现具体功能了,一步一步来吧!
四、优化 五、总结


