成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

編寫一個簡單的游戲來練習用 C++ 編程

系統 Linux
C++ 語言很復雜,但它可以教會你很多關于數據類型、內存管理和代碼鏈接的知識。在本文中,我將演示如何用 C++ 在終端上實現猜謎游戲。

[[373804]]

C++ 語言很復雜,但它可以教會你很多關于數據類型、內存管理和代碼鏈接的知識。

學習一門編程語言有幾種方法。如果你是編碼新手,你通常會學習一些基本的計算機編碼概念,并嘗試應用它們。如果你已經知道如何用另一種語言進行編碼,你可以重新學習編碼概念在新語言中是如何表達的。

不管是哪種情況,學習這些新原理的便捷方法是創建一個簡單的猜謎游戲。這會迫使你了解一門語言如何接收輸入和發送輸出,如何比較數據,如何控制程序的流程,以及如何利用條件來影響結果。它還確保你知道一門語言是如何組織其代碼的;例如,Lua 或 Bash 可以很容易地作為腳本運行,而 Java 則需要你創建一個類。

在本文中,我將演示如何用 C++ 在終端上實現猜謎游戲。

安裝依賴關系

要跟上本文的步伐,你需要 C++ 和一個編譯器。

在 Linux 上,你可以通過從你的發行版軟件倉庫中安裝 Qt Creator IDE 來獲得你所需要的一切。

在 Fedora、CentOS 或 RHEL 上:

  1. $ sudo dnf install qt-creator

在 Debian、Ubuntu、Chromebook 或類似的系統上:

  1. $ sudo apt install qtcreator

本文并沒有使用 Qt Creator IDE,但它是一個安裝你所需要的一切的簡單方法,對于復雜的 C++ 項目(包括那些帶有 GUI 的項目),它是一個必不可少的工具。在 macOS 或 Windows 上,按照 Qt 網站上的安裝說明進行安裝。

設置包含和命名空間

C++ 的核心語言是精簡的。即使是一個簡單的應用程序也需要使用額外的庫。這個應用程序使用 iostream 來獲得對 cout 和 cin 關鍵字的訪問。

另外,確保程序使用 std 命名空間:

  1. #include <iostream>
  2.  
  3. using namespace std;

這并不是絕對必要,但如果不將命名空間設置為 std,所有來自 iostream 庫的關鍵字都需要一個命名空間前綴。例如,我不能寫作 cout,而是要寫作 std::cout

C++ 中的語句以分號結束。

創建一個函數

每個 C++ 應用程序至少需要一個函數。一個 C++ 應用程序的主函數必須稱為 main,它必須返回一個整數(int),這符合 POSIX 的期望,即一個進程在成功時返回 0,而在失敗時返回其他值。你可以通過為它提供返回類型和名稱來創建一個新函數。

  1. int main() {
  2.  // code goes here
  3. }

實現程序邏輯

游戲代碼必須首先產生一個隨機數供玩家猜測。在 C++ 中,你可以通過建立一個用于生成偽隨機數的種子來實現。一個簡單的種子就是當前的時間。一旦有了種子,你就可以得到一個在 1 和 100 之間的數字。通過調用 rand 函數,并設置上限值 100 來產生一個從 0 到 99 的隨機數,所以無論選擇了什么數字都要加 1,并將結果分配給一個名為 number 的變量。你還必須聲明一個變量來保存玩家的猜測值。為了清楚起見,我稱這個變量為 guess

這個示例代碼還包括一個調試語句,告訴你隨機數到底是什么。這對于猜測游戲來說不是很好,但它使測試速度快了很多。以后,你可以刪除這一行,或者直接在行前面用 // 注釋出來:

  1. srand (time(NULL));
  2. int number = rand() % 100+1;
  3. int guess = 0;
  4.  
  5. cout << number << endl; //debug

增加 do-while 和 if 語句

C++ 中的 do-while 語句以關鍵字 do 開頭,并將你希望 C++ 做的所有事情用括號括起來。用 while 關鍵字結束語句,后面是必須滿足的條件(括號內):

  1. do {
  2.  // code here
  3. } while ( number != guess );

游戲代碼出現在 ifelse if 和 else 語句之間,為玩家提供提示。

首先,用 cout 語句提示玩家猜測。cout 函數將輸出打印到 stdout 上。因為 cout 語句沒有連著 endl(endline)函數,所以沒有換行。緊接著這個 cout 語句,通過使用 cin 函數告訴 C++ 等待輸入。正如你所猜測的那樣,cin 等待來自 stdin 的輸入。

接下來,程序進入 if 控制語句。如果玩家的猜測大于 number 變量中包含的偽隨機數,那么程序就會打印出一個提示,后面是一個換行符。這就中斷了 if 語句,但 C++ 仍然被困在 do-while 循環中,因為它的條件(number 變量等于 guess)還沒有滿足。

如果玩家的猜測小于 number 變量中包含的偽隨機數,那么程序就會打印出一個提示,后面是一個換行符。這再次中斷了 if 語句,但程序仍然被困在 do-while 循環中。

當 guess 等于 number 時,最終滿足關鍵條件,觸發 else 語句,do-while 循環結束,程序結束:

  1. do {
  2. cout << "Guess a number between 1 and 100: ";
  3. cin >> guess;
  4.  
  5. if ( guess > number) { cout << "Too high.\n" << endl; }
  6. else if ( guess < number ) { cout << "Too low.\n" << endl; }
  7. else {
  8. cout << "That's right!\n" << endl;
  9. exit(0);
  10. } // fi
  11. } while ( number != guess );
  12. return 0;
  13. } // main

構建代碼和玩游戲

你可以用 GCC 構建你的應用程序:

  1. $ g++ -o guess.bin guess.cpp

運行二進制文件試試:

  1. $ ./guess.bin
  2. 74
  3. Guess a number between 1 and 100: 76
  4. Too high.
  5.  
  6. Guess a number between 1 and 100: 1
  7. Too low.
  8.  
  9. Guess a number between 1 and 100: 74
  10. That's right!

成功了!

試試 C++ 吧

C++ 語言很復雜。為終端編寫 C++ 應用程序可以讓你學到很多關于數據類型、內存管理和代碼鏈接的知識。試著用 C++ 編寫一個有用的實用程序,看看你能發現什么! 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-01-01 19:30:21

Python編程語言

2021-01-03 16:30:34

Rust編程語言

2021-01-14 08:55:20

C語言編程

2023-01-13 18:55:09

游戲Ada編程語言

2021-02-05 16:03:48

JavaScript游戲學習前端

2011-09-16 10:00:56

C++

2013-12-13 08:59:15

C++游戲

2022-06-03 16:59:13

編程語言Awk

2009-09-11 09:11:09

2009-09-11 09:10:30

C#編寫游戲

2021-04-13 06:35:13

Elixir語言編程語言軟件開發

2021-05-28 18:12:51

C++設計

2020-11-30 13:16:29

Python編程語言

2017-11-23 08:30:26

編程Python擲骰子游戲

2015-05-25 15:06:28

JavaScript函數式編程

2019-09-23 09:11:02

Python文本編輯器操作系統

2015-03-24 19:48:24

2009-08-25 01:46:00

C# WINDOWS服

2021-08-30 07:59:56

C++溢出函數

2022-09-08 06:23:37

C++HTTP 服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩国产精品一区二区三区 | 欧美亚洲免费 | 午夜欧美 | 午夜视频免费网站 | 日韩精品一区二区三区老鸭窝 | 日本久久久一区二区三区 | 亚洲美女一区 | 国产欧美日韩精品一区 | 亚洲一二三在线 | 精品国产区 | 国产农村一级国产农村 | 免费黄色成人 | 中文字幕91av | 亚洲人成人一区二区在线观看 | 成人一区二区三区在线观看 | 黄色片在线网站 | 91欧美精品成人综合在线观看 | 国产一区免费视频 | 美女视频三区 | 久久精品免费 | 日本精品一区二区 | 色屁屁在线观看 | 99久久99久久精品国产片果冰 | 成人午夜免费福利视频 | 国产精品国产精品国产专区不片 | 精品久久国产视频 | 国产免费一区二区 | 精品福利一区二区三区 | 亚洲国产精品99久久久久久久久 | 一级做a| 久久国产一区二区三区 | 波多野结衣中文字幕一区二区三区 | 国产色片在线 | 男人av在线播放 | 国产精品一区二区久久精品爱微奶 | 亚洲一区免费 | 美人の美乳で授乳プレイ | av一级在线观看 | 在线亚洲欧美 | 91一区二区在线观看 | 日日操操 |