国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)通常叫什么部門如何做市場推廣方案

網(wǎng)站開發(fā)通常叫什么部門,如何做市場推廣方案,動漫制作專業(yè)特色,cdr里做網(wǎng)站超級鏈接名人說:莫聽穿林打葉聲,何妨吟嘯且徐行?!?蘇軾《定風(fēng)波莫聽穿林打葉聲》 Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder) 目錄 一、效果圖二、代碼(帶注釋)三、說明 一、效果圖 二、代碼(帶…

名人說:莫聽穿林打葉聲,何妨吟嘯且徐行?!?蘇軾《定風(fēng)波·莫聽穿林打葉聲》
Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder)

目錄

      • 一、效果圖
      • 二、代碼(帶注釋)
      • 三、說明

一、效果圖

在這里插入圖片描述

二、代碼(帶注釋)

//創(chuàng)作者:Code_流蘇(CSDN)
//未經(jīng)允許,禁止轉(zhuǎn)載發(fā)布,可自己學(xué)習(xí)使用
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>using namespace std;const int SIZE = 4; // 定義游戲板的大小為4x4// 初始化游戲板
void initializeBoard(vector<vector<int>>& board) {board.assign(SIZE, vector<int>(SIZE, 0)); // 將游戲板初始化為SIZE x SIZE的0矩陣// 在游戲板上隨機生成兩個數(shù)字2board[rand() % SIZE][rand() % SIZE] = 2;board[rand() % SIZE][rand() % SIZE] = 2;
}// 打印游戲板
void printBoard(const vector<vector<int>>& board) {for (int i = 0; i < SIZE; ++i) {for (int j = 0; j < SIZE; ++j) {if(board[i][j] == 0) cout << ".";else cout << board[i][j];cout << "\t";}cout << endl;}
}// 檢查是否還有可移動的格子
bool canMove(const vector<vector<int>>& board) {for (int i = 0; i < SIZE; ++i) {for (int j = 0; j < SIZE; ++j) {// 如果有空格或者有相鄰的相同數(shù)字,則可以移動if (board[i][j] == 0) return true;if (i < SIZE - 1 && board[i][j] == board[i + 1][j]) return true;if (j < SIZE - 1 && board[i][j] == board[i][j + 1]) return true;}}return false;
}// 在隨機位置添加一個數(shù)字2或4
void addNumber(vector<vector<int>>& board) {int i, j;do {i = rand() % SIZE;j = rand() % SIZE;} while (board[i][j] != 0); // 選擇一個空的格子board[i][j] = (rand() % 10 == 0) ? 4 : 2; // 有10%的概率生成4,90%的概率生成2
}// 旋轉(zhuǎn)游戲板
void rotateBoard(vector<vector<int>>& board) {vector<vector<int>> temp(SIZE, vector<int>(SIZE));for (int i = 0; i < SIZE; ++i) {for (int j = 0; j < SIZE; ++j) {temp[j][SIZE - 1 - i] = board[i][j]; // 旋轉(zhuǎn)90度}}board = temp;
}// 向左移動格子并合并
void moveTiles(vector<vector<int>>& board) {for (int i = 0; i < SIZE; ++i) {int lastMergePosition = -1; for (int j = 1; j < SIZE; ++j) {if (board[i][j] == 0) continue; // 如果當(dāng)前格子為空,則跳過int previousPosition = j - 1;// 尋找可以合并或移動的位置while (previousPosition > lastMergePosition && board[i][previousPosition] == 0) {previousPosition--;}if (previousPosition == j) continue; // 如果沒有可移動或合并的位置,繼續(xù)下一個格子// 根據(jù)情況移動或合并格子if (board[i][previousPosition] == 0) {board[i][previousPosition] = board[i][j];board[i][j] = 0;} else if (board[i][previousPosition] == board[i][j]) {board[i][previousPosition] *= 2;board[i][j] = 0;lastMergePosition = previousPosition;} else if (previousPosition + 1 != j) {board[i][previousPosition + 1] = board[i][j];board[i][j] = 0;}}}
}// 定義不同方向的移動
void moveLeft(vector<vector<int>>& board) {moveTiles(board);
}void moveRight(vector<vector<int>>& board) {rotateBoard(board);rotateBoard(board);moveTiles(board);rotateBoard(board);rotateBoard(board);
}void moveUp(vector<vector<int>>& board) {rotateBoard(board);rotateBoard(board);rotateBoard(board);moveTiles(board);rotateBoard(board);
}void moveDown(vector<vector<int>>& board) {rotateBoard(board);moveTiles(board);rotateBoard(board);rotateBoard(board);rotateBoard(board);
}// 主函數(shù)
int main() {srand(time(NULL)); // 設(shè)置隨機種子vector<vector<int>> board;initializeBoard(board); // 初始化游戲板printBoard(board); // 打印游戲板while (true) {if (!canMove(board)) {cout << "游戲結(jié)束!" << endl;break;}char input;cout << "選擇方向 (w/a/s/d): ";cin >> input; // 獲取用戶輸入switch (input) {case 'a':moveLeft(board);break;case 'd':moveRight(board);break;case 'w':moveUp(board);break;case 's':moveDown(board);break;default:cout << "無效輸入! 請使用 w/a/s/d." << endl;continue;}if (canMove(board)) {addNumber(board); // 在合適位置添加新的數(shù)字}printBoard(board); // 打印更新后的游戲板}return 0;
}

三、說明

上述代碼實現(xiàn)了一個簡單的2048游戲,主要由以下幾個部分組成:

  1. 初始化游戲板 (initializeBoard函數(shù)):用于初始化一個SIZE x SIZE(在這個例子中是4x4)的游戲板,并隨機在兩個位置放置數(shù)字2。

  2. 打印游戲板 (printBoard函數(shù)):該函數(shù)用于遍歷游戲板并打印每個元素,其中0被替換為.以便于觀看。

  3. 檢查是否可以移動 (canMove函數(shù)):這個函數(shù)用來檢查游戲板上是否還有可合并的元素或者空位,以決定游戲是否結(jié)束。

  4. 添加數(shù)字 (addNumber函數(shù)):在玩家移動之后,在一個隨機的空位置上添加一個新的數(shù)字(90%的概率是2,10%的概率是4)。

  5. 旋轉(zhuǎn)游戲板 (rotateBoard函數(shù)):為了簡化移動邏輯,此函數(shù)用來將游戲板順時針旋轉(zhuǎn)90度。

  6. 移動方塊 (moveTiles函數(shù)):該函數(shù)用于處理實際的方塊移動和合并邏輯。

  7. 移動方向 (moveLeft, moveRight, moveUp, moveDown函數(shù)):這些函數(shù)使用moveTilesrotateBoard來處理不同方向的移動。

  8. 主函數(shù) (main函數(shù)):設(shè)置游戲的初始狀態(tài),然后進(jìn)入一個循環(huán),等待玩家輸入來移動方塊,直到?jīng)]有移動可做時結(jié)束游戲。

補充說明:

  • 游戲板的大小是通過const int SIZE = 4預(yù)設(shè)的,即方格大小為4x4。
  • 游戲開始時,游戲板上有兩個數(shù)字2。
  • 玩家可以通過輸入’w’, ‘a(chǎn)’, ‘s’, 'd’來控制方塊向上、左、下、右移動。
  • 當(dāng)游戲板上沒有空位或者沒有可合并的相鄰方塊時,游戲結(jié)束。
  • 這個程序沒有實現(xiàn)計分功能,可自己擴充實現(xiàn)。

Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder)
點贊加關(guān)注,收藏不迷路!本篇文章對你有幫助的話,還請多多點贊支持!

http://aloenet.com.cn/news/41538.html

相關(guān)文章:

  • 自己開加工廠怎么找訂單東莞seo優(yōu)化團隊
  • vr軟件開發(fā)需要學(xué)什么優(yōu)化推廣網(wǎng)站淄博
  • 南京溧水城市建設(shè)集團網(wǎng)站跨境電商網(wǎng)站開發(fā)
  • java答題對戰(zhàn)網(wǎng)站開發(fā)seo優(yōu)化服務(wù)商
  • vue做的小網(wǎng)站大興今日頭條新聞
  • 做web網(wǎng)站常用框架東莞網(wǎng)絡(luò)營銷推廣專業(yè)
  • 做網(wǎng)站后有人搶注品牌關(guān)鍵字開魯視頻
  • 阿里云上做網(wǎng)站靠譜嗎網(wǎng)絡(luò)優(yōu)化工程師證書
  • 建設(shè)銀行信用卡中心網(wǎng)站咸陽網(wǎng)站建設(shè)公司
  • 小程序登錄后臺seo聯(lián)盟
  • 網(wǎng)站網(wǎng)址有哪些臨沂seo整站優(yōu)化廠家
  • 網(wǎng)站制作公司源碼北京百度競價托管
  • 深圳做網(wǎng)站的給說網(wǎng)店推廣有哪些
  • 做網(wǎng)站最好最佳的資源搜索引擎
  • 環(huán)保網(wǎng)站查詢碾米是否做備案做個網(wǎng)站需要多少錢
  • jsp網(wǎng)站開發(fā)實例教程北京廈門網(wǎng)站優(yōu)化
  • 廈門網(wǎng)站流量優(yōu)化價格app推廣平臺放單平臺
  • 無錫做網(wǎng)站6seo技術(shù)助理
  • 邵陽市城鄉(xiāng)建設(shè)廳網(wǎng)站網(wǎng)絡(luò)營銷是學(xué)什么的
  • 企業(yè)做自己的網(wǎng)站要注意什么window優(yōu)化大師
  • 模板網(wǎng)站演示站點怎么做口碑營銷案例2022
  • 主機怎么做網(wǎng)站二次跳轉(zhuǎn)怎么理解搜索引擎優(yōu)化
  • 網(wǎng)站掛馬怎么辦優(yōu)化網(wǎng)站排名方法教程
  • 阿里云ecs裝wordpress長沙的seo網(wǎng)絡(luò)公司
  • 男人和女人做受吃母乳視頻網(wǎng)站免費互聯(lián)網(wǎng)銷售是什么意思
  • 網(wǎng)站低保圖用什么做贛州seo外包
  • 站酷設(shè)計官方網(wǎng)站磁力下載
  • wordpress 圖片 cdn臺州seo優(yōu)化公司
  • WordPress建站 用插件怎么推廣軟件
  • 深圳建設(shè)交易中心網(wǎng)站首頁福州百度關(guān)鍵詞優(yōu)化