日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

編寫一個簡單的游戲來練習(xí)用 C++ 編程 -Linux 中國(用c語言編寫一個簡單游戲)

編寫一個簡單的游戲來練習(xí)用 C++ 編程 -Linux 中國(用c語言編寫一個簡單游戲)

C 語言很復(fù)雜,但它可以教會你很多關(guān)于數(shù)據(jù)類型、內(nèi)存管理和代碼鏈接的知識。

? 來源:linux.cn ? 作者:Seth Kenlon ? 譯者:Xingyu.Wang ?

(本文字數(shù):3473,閱讀時長大約:4 分鐘)

C 語言很復(fù)雜,但它可以教會你很多關(guān)于數(shù)據(jù)類型、內(nèi)存管理和代碼鏈接的知識。

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

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

在本文中,我將演示如何用 C 在終端上實現(xiàn)猜謎游戲。

安裝依賴關(guān)系

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

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

Fedora、CentOS 或 RHEL 上:

$ sudo dnf install qt-creator

在 Debian、Ubuntu、Chromebook 或類似的系統(tǒng)上:

$ sudo apt install qtcreator

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

設(shè)置包含和命名空間

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

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

#include <iostream>using namespace std;

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

C 中的語句以分號結(jié)束。

創(chuàng)建一個函數(shù)

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

int main() { // code goes here}

實現(xiàn)程序邏輯

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

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

srand (time(NULL)); int number = rand() % 100 1; int guess = 0; cout << number << endl; //debug

增加 do-while 和 if 語句

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

do { // code here} while ( number != guess );

游戲代碼出現(xiàn)在 if、else if 和 else 語句之間,為玩家提供提示。

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

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

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

當 guess 等于 number 時,最終滿足關(guān)鍵條件,觸發(fā) else 語句,do-while 循環(huán)結(jié)束,程序結(jié)束:

do {  cout << "Guess a number between 1 and 100: ";  cin >> guess;  if ( guess > number) { cout << "Too high.n" << endl; }  else if ( guess < number ) { cout << "Too low.n" << endl; }  else {    cout << "That's right!n" << endl;    exit(0);  } // fi } while ( number != guess );return 0;} // main

構(gòu)建代碼和玩游戲

你可以用 GCC 構(gòu)建你的應(yīng)用程序:

$ g -o guess.bin guess.cpp

運行二進制文件試試:

$ ./guess.bin74Guess a number between 1 and 100: 76Too high.Guess a number between 1 and 100: 1Too low.Guess a number between 1 and 100: 74That's right!

成功了!

試試 C 吧

C 語言很復(fù)雜。為終端編寫 C 應(yīng)用程序可以讓你學(xué)到很多關(guān)于數(shù)據(jù)類型、內(nèi)存管理和代碼鏈接的知識。試著用 C 編寫一個有用的實用程序,看看你能發(fā)現(xiàn)什么!


via: opensource.com

作者: Seth Kenlon 選題: lujun9972 譯者: wxy 校對: wxy

本文由 LCTT 原創(chuàng)編譯, Linux中國 榮譽推出

點擊“了解更多”可訪問文內(nèi)鏈接

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
泸水县| 韶山市| 徐闻县| 洞口县| 磐安县| 彭水| 方城县| 台南县| 宣恩县| 聂拉木县| 双江| 岱山县| 泗洪县| 华容县| 措勤县| 峨边| 汉阴县| 南投市| 陇西县| 游戏| 瑞安市| 光山县| 阳信县| 安陆市| 淅川县| 东乌珠穆沁旗| 乌什县| 平邑县| 章丘市| 海盐县| 榆树市| 普洱| 皋兰县| 常德市| 沧州市| 桃园市| 凤翔县| 新丰县| 金门县| 宕昌县| 盘锦市|