当前位置: 首页 > news >正文

宁波专业网站seo公司如何上传ftp网站程序

宁波专业网站seo公司,如何上传ftp网站程序,手机登录不了建设银行网站,学校网站资源建设以下是一个简单的2048游戏的实现。这个实现使用了控制台输入和输出#xff0c;适合在终端或命令行环境中运行。 2048游戏的实现 1.游戏逻辑 2048游戏的核心逻辑包括#xff1a; • 初始化一个4x4的网格。 • 随机生成2或4。 • 处理玩家的移动操作#xff08;上、下、左、…以下是一个简单的2048游戏的实现。这个实现使用了控制台输入和输出适合在终端或命令行环境中运行。 2048游戏的实现 1.游戏逻辑 2048游戏的核心逻辑包括 • 初始化一个4x4的网格。 • 随机生成2或4。 • 处理玩家的移动操作上、下、左、右。 • 合并相同的数字。 • 检查游戏是否结束胜利或失败。 2.代码实现 cpp #include iostream #include vector #include cstdlib #include ctime #include algorithm using namespace std; const int GRID_SIZE 4; const int WINNING_SCORE 2048; void initializeGrid(vectorvectorint grid) {     for (int i 0; i GRID_SIZE; i) {         grid.push_back(vectorint(GRID_SIZE, 0));     } } void printGrid(const vectorvectorint grid) {     for (const auto row : grid) {         for (int val : row) {             cout val \t;         }         cout endl;     }     cout endl; } void addRandomTile(vectorvectorint grid) {     vectorpairint, int emptyCells;     for (int i 0; i GRID_SIZE; i) {         for (int j 0; j GRID_SIZE; j) {             if (grid[i][j] 0) {                 emptyCells.push_back({i, j});             }         }     }     if (!emptyCells.empty()) {         pairint, int cell emptyCells[rand() % emptyCells.size()];         grid[cell.first][cell.second] (rand() % 2) ? 2 : 4;     } } bool canMove(const vectorvectorint grid) {     for (int i 0; i GRID_SIZE; i) {         for (int j 0; j GRID_SIZE; j) {             if (grid[i][j] 0) return true;             if (i 0 grid[i][j] grid[i - 1][j]) return true;             if (j 0 grid[i][j] grid[i][j - 1]) return true;             if (i GRID_SIZE - 1 grid[i][j] grid[i 1][j]) return true;             if (j GRID_SIZE - 1 grid[i][j] grid[i][j 1]) return true;         }     }     return false; } void compress(vectorint row) {     vectorint temp(GRID_SIZE, 0);     int k 0;     for (int i 0; i GRID_SIZE; i) {         if (row[i] ! 0) {             temp[k] row[i];         }     }     for (int i 0; i GRID_SIZE; i) {         row[i] temp[i];     } } void merge(vectorint row) {     for (int i 0; i GRID_SIZE - 1; i) {         if (row[i] row[i 1] row[i] ! 0) {             row[i] * 2;             row[i 1] 0;         }     } } void moveLeft(vectorvectorint grid) {     for (auto row : grid) {         compress(row);         merge(row);         compress(row);     } } void moveRight(vectorvectorint grid) {     for (auto row : grid) {         reverse(row.begin(), row.end());         compress(row);         merge(row);         compress(row);         reverse(row.begin(), row.end());     } } void moveUp(vectorvectorint grid) {     for (int col 0; col GRID_SIZE; col) {         vectorint temp(GRID_SIZE, 0);         for (int row 0; row GRID_SIZE; row) {             temp[row] grid[row][col];         }         compress(temp);         merge(temp);         compress(temp);         for (int row 0; row GRID_SIZE; row) {             grid[row][col] temp[row];         }     } } void moveDown(vectorvectorint grid) {     for (int col 0; col GRID_SIZE; col) {         vectorint temp(GRID_SIZE, 0);         for (int row 0; row GRID_SIZE; row) {             temp[row] grid[row][col];         }         reverse(temp.begin(), temp.end());         compress(temp);         merge(temp);         compress(temp);         reverse(temp.begin(), temp.end());         for (int row 0; row GRID_SIZE; row) {             grid[row][col] temp[row];         }     } } bool isGameOver(const vectorvectorint grid) {     for (const auto row : grid) {         for (int val : row) {             if (val WINNING_SCORE) return true;         }     }     return !canMove(grid); } int main() {     srand(static_castunsigned int(time(0)));     vectorvectorint grid;     initializeGrid(grid);     addRandomTile(grid);     addRandomTile(grid); while (true) {         printGrid(grid);         char move;         cout Enter move (W/A/S/D): ;         cin move; switch (move) {             case W:             case w:                 moveUp(grid);                 break;             case A:             case a:                 moveLeft(grid);                 break;             case S:             case s:                 moveDown(grid);                 break;             case D:             case d:                 moveRight(grid);                 break;             default:                 cout Invalid move. Try again. endl;                 continue;         } addRandomTile(grid); if (isGameOver(grid)) {             printGrid(grid);             cout Game Over! (grid[0][0] WINNING_SCORE ? You Win! : You Lose!) endl;             break;         }     } return 0; } 3.代码说明 • 初始化网格initializeGrid函数初始化一个4x4的网格所有值初始化为0。 • 打印网格printGrid函数打印当前网格的状态。 • 添加随机瓷砖addRandomTile函数在网格的空位置随机添加一个2或4。 • 移动操作moveLeft、moveRight、moveUp、moveDown函数分别处理左、右、上、下移动操作。 • 压缩和合并compress和merge函数分别处理行或列的压缩和合并操作。 • 检查游戏结束isGameOver函数检查游戏是否结束胜利或失败。 4.运行游戏 将上述代码保存为一个C文件例如2048.cpp然后使用C编译器编译并运行它。例如使用g编译器 sh g -o 2048 2048.cpp ./2048 5.游戏玩法 • 使用W/A/S/D键控制方向上/左/下/右。 • 游戏目标是合并数字直到出现2048。 • 如果没有可移动的空位且无法合并则游戏结束。 希望这个实现对你有帮助
http://www.sczhlp.com/news/252241/

相关文章:

  • app网站及其特色柳州人社app下载
  • 微信房地产网站建设万网网站多少
  • 开篇网站推广企业站模板
  • 做网站有哪些导航条diy手机壳定制网站
  • 辽宁城市建设网站辽宁建设厅官网
  • 手工网站做蛋糕盒子怎么样可以建设网站
  • 子目录做网站哪个网站买东西最便宜
  • 网站基本功能wordpress ucenter
  • 2017年做那家网站好等保二级网站建设方案
  • 怎么查看网站访问速度做一个短视频app需要多少钱
  • 企业网站整合如何快速推广一个网站
  • 网站建设 成本分析如何简述网站建设流程图
  • 电子丨磁珠与电感
  • 系统稳定性—NullPointerException常见原因及解决方法
  • 网站制作网站制作公司懒人凳子网站建设策划书
  • 产教融合平台建设网站书签制作 小学生的手工书签
  • 合肥市城乡城乡建设局网站石家庄品牌设计公司
  • 广州做网站建设哪家公司好wordpress中文表单生成
  • 重庆网站设计开发培训网页赚钱游戏
  • 重庆网站建设哪个好网站建设网站优化相关资讯文章
  • 定制开发电商网站建设最好看免费观看高清大全宫崎骏
  • 网站建设哪家服务态度好政法大学 wordpress
  • 手机如何做微商城网站设计小程序 wordpress 王皓
  • 想做个网站要多少钱太原搭建网站的公司哪家好
  • 提高网站收录深圳知名工业设计公司
  • 厦门安能建设公司网站海外网络服务商
  • 网站建设需要的流程新手电商运营从哪开始学
  • 住房城乡建设部执业资格注册中心网站宜宾微信网站建设
  • 福建省住建厅建设网站wordpress国际化
  • 有关网站开发的文献或论文seo短视频保密路线