發(fā)布時(shí)間:2023-11-27 16:16:51 瀏覽量:112次
? 來源:linux.cn ? 作者:Seth Kenlon ? 譯者:Xingyu.Wang ?
(本文字?jǐn)?shù):3473,閱讀時(shí)長大約:4 分鐘)
學(xué)習(xí)一門編程語言有幾種方法。如果你是編碼新手,你通常會學(xué)習(xí)一些基本的計(jì)算機(jī)編碼概念,并嘗試應(yīng)用它們。如果你已經(jīng)知道如何用另一種語言進(jìn)行編碼,你可以重新學(xué)習(xí)編碼概念在新語言中是如何表達(dá)的。
不管是哪種情況,學(xué)習(xí)這些新原理的便捷方法是創(chuàng)建一個簡單的猜謎游戲。這會迫使你了解一門語言如何接收輸入和發(fā)送輸出,如何比較數(shù)據(jù),如何控制程序的流程,以及如何利用條件來影響結(jié)果。它還確保你知道一門語言是如何組織其代碼的;例如,Lua 或 Bash 可以很容易地作為腳本運(yùn)行,而 Java 則需要你創(chuàng)建一個類。
在本文中,我將演示如何用 C++ 在終端上實(shí)現(xià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++ 項(xiàng)目(包括那些帶有 GUI 的項(xiàng)目),它是一個必不可少的工具。在 macOS 或 Windows 上,按照 Qt 網(wǎng)站上的 安裝說明 進(jìn)行安裝。
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é)束。
每個 C++ 應(yīng)用程序至少需要一個函數(shù)。一個 C++ 應(yīng)用程序的主函數(shù)必須稱為 main,它必須返回一個整數(shù)(int),這符合 POSIX 的期望,即一個進(jìn)程在成功時(shí)返回 0,而在失敗時(shí)返回其他值。你可以通過為它提供返回類型和名稱來創(chuàng)建一個新函數(shù)。
int main() {
// code goes here
}
游戲代碼必須首先產(chǎn)生一個隨機(jī)數(shù)供玩家猜測。在 C++ 中,你可以通過建立一個用于生成偽隨機(jī)數(shù)的種子來實(shí)現(xiàn)。一個簡單的種子就是當(dāng)前的時(shí)間。一旦有了種子,你就可以得到一個在 1 和 100 之間的數(shù)字。通過調(diào)用 rand 函數(shù),并設(shè)置上限值 100 來產(chǎn)生一個從 0 到 99 的隨機(jī)數(shù),所以無論選擇了什么數(shù)字都要加 1,并將結(jié)果分配給一個名為 number 的變量。你還必須聲明一個變量來保存玩家的猜測值。為了清楚起見,我稱這個變量為 guess。
這個示例代碼還包括一個調(diào)試語句,告訴你隨機(jī)數(shù)到底是什么。這對于猜測游戲來說不是很好,但它使測試速度快了很多。以后,你可以刪除這一行,或者直接在行前面用 // 注釋出來:
srand (time(NULL));
int number = rand() % 100+1;
int guess = 0;
cout << number << endl; //debug
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 上。因?yàn)?cout 語句沒有連著 endl(endline)函數(shù),所以沒有換行。緊接著這個 cout 語句,通過使用 cin 函數(shù)告訴 C++ 等待輸入。正如你所猜測的那樣,cin 等待來自 stdin 的輸入。
接下來,程序進(jìn)入 if 控制語句。如果玩家的猜測大于 number 變量中包含的偽隨機(jī)數(shù),那么程序就會打印出一個提示,后面是一個換行符。這就中斷了 if 語句,但 C++ 仍然被困在 do-while 循環(huán)中,因?yàn)樗臈l件(number 變量等于 guess)還沒有滿足。
如果玩家的猜測小于 number 變量中包含的偽隨機(jī)數(shù),那么程序就會打印出一個提示,后面是一個換行符。這再次中斷了 if 語句,但程序仍然被困在 do-while 循環(huán)中。
當(dāng) guess 等于 number 時(shí),最終滿足關(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
你可以用 GCC 構(gòu)建你的應(yīng)用程序:
$ g++ -o guess.bin guess.cpp
運(yùn)行二進(jìn)制文件試試:
$ http://www.toutiao.com/a6914107149903823374/guess.bin
74
Guess a number between 1 and 100: 76
Too high.
Guess a number between 1 and 100: 1
Too low.
Guess a number between 1 and 100: 74
That's right!
成功了!
C++ 語言很復(fù)雜。為終端編寫 C++ 應(yīng)用程序可以讓你學(xué)到很多關(guān)于數(shù)據(jù)類型、內(nèi)存管理和代碼鏈接的知識。試著用 C++ 編寫一個有用的實(shí)用程序,看看你能發(fā)現(xiàn)什么!
via: opensource.com
作者: Seth Kenlon 選題: lujun9972 譯者: wxy 校對: wxy
本文由 LCTT 原創(chuàng)編譯, Linux中國 榮譽(yù)推出
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計(jì)領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點(diǎn)擊咨詢報(bào)名。
2. 手機(jī)游戲如何開發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時(shí)代在進(jìn)步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白??靵碓囋?!
4. Steam值得入手的武俠游戲盤點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動漫建模全過程,不是一般人能學(xué)的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
7. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動畫軟件或動畫工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
8. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 虛幻引擎5節(jié)省存儲空間用這招!緩存的清理與設(shè)置
眾所周知,虛幻引擎5(下面簡稱UE5)特別占用存儲空間,僅一個版本安裝好的文件就有60G,這還不包括我們在使用時(shí)保存的工程文件和隨之產(chǎn)生的緩存文件。而...
最新文章
同學(xué)您好!