2048游戏编程具体思路和实现(更新1)

2048游戏编程具体思路和实现(更新1),第1张

2048游戏编程具体思路和实现(更新1) 2048游戏编程具体思路和实现

(更新中……)


一、游戏背景
  • 思路很简单的游戏:点击在线试玩

  • 试玩截图:

二、 游戏流程图
  • 游戏的本质是根据玩家键盘(或其他)输入的值对一个 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 赋了初值)

      1. 打印函数-PrintGrid()

        !要注意一点:二维数组遍历的时候图形上是(j, i)对应到数组取值上是grid/[i/]/[j/]

      2. 计算空格函数-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-游戏结束检测
四、优化 五、总结

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4995821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存