大一上C++课程设计

您所在的位置:网站首页 c语言2048小游戏设计 大一上C++课程设计

大一上C++课程设计

2024-06-30 14:34| 来源: 网络整理| 查看: 265

1.需求分析 2048小游戏,需要在进行上下左右操作的时候合并相同的数字,并且向按动的方向进行移动,每次移动后,随机生成2或者4两个数字。要求合并后移动两个数字之间不可以出现0,当无法移动再一次进行移动或者合并出现数字2048的时候,游戏结束。无法移动,游戏判负,出现2048,游戏获胜。 2.基本求解思路 万事开头难。想要对一个问题进行求解,首先要理清楚完成事情的步骤。按照题目要求: “使用面向对象的方法来设计程序,即使用类和对象来完成设计,不运行使用面向过程的一堆函数来完成。 ” 需要注明的是,此处的N我在头文件中选择 “#define N 4” 进行描述。 因此题目的大方向是使用 类 来进行操作。接下来需要在类中定义成员函数,这些函数分步完成所需要进行的操作。我需要定义哪些函数呢?思路如下: 1.首先进行的是上下左右操作,这部分为四个函数; 2.建立初始棋盘并且打印; 3.棋盘采用何种方式储存; 4.进行上下左右操作后,随机生成数字2或者4; 5.记录分数; 6.判断游戏是否结束;

按照需求,我建立了以下成员函数: class Game { public:

void up(); // 四步操作 void down(); void left(); void right();

int board[N][N]{ 0 }; //定义棋盘的大小 void setchessboard(); // 定义初始棋盘 void printchessboard(); //打印棋盘

int score(); // 记录分数 int ifgameover(); // 判断游戏结束 }; 具体代码如下:

#include #include #include #include #include #include #include #include #include #define N 4 #define _CRT_SECURE_NO_DEPRECATE #define _CRT_NONSTDC_NO_DEPRECATE using namespace std; class Game { public: int board[N][N]{ 0 }; //定义棋盘的大小 void setchessboard(); // 定义初始棋盘 void printchessboard(); //打印棋盘 void up(); // 四步操作 void down(); void left(); void right(); int score(); // 记录分数 int ifgameover(); // 判断游戏结束 }; // board[a][b] 中[a]控制的是行 [b]控制的是列 //以下代码中,定义c的作用相当于一个标尺(或者说参照物?) void Game::up() { //向上合并的话,第一行不用向上合并。采用的思路是一行一行来看 对上一行进行怎样的一步操作。 int h = 0; for (int a = 1; a


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3