1.8 Lost Fortune簡介
本章最后一個項目Lost Fortune是一個擬人化的探險游戲。在游戲中,玩家輸入一些信息,計算機把這些信息擴展成一個探險故事。程序的運行示例如圖1-9所示。
圖1-9 故事由玩家提供的細節(jié)構成
這里不一次展示全部代碼,而是每次給出一部分。從Course Technology網(wǎng)站(www.courseptr. com/downloads)或本書合作網(wǎng)站(http://www.tupwk.com.cn/downpage)上可以下載到該程序的代碼。程序位于Chapter 1文件夾中,文件名為lost_fortune.cpp。
1.8.1 創(chuàng)建程序
首先是一些初始注釋、兩個必要的頭文件和一些using指令。
// Lost Fortune
// A personalized adventure
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::string;
程序包含了string文件,它是標準庫的一部分。因此,通過變量,程序可以用string對象來存取字符串。關于string對象的內容很多,但這里不準備介紹。第3章將介紹更多關于string對象的知識。
同樣,程序使用using指令明確指出準備使用的std名稱空間中的對象。因此,我們能清楚地看到string屬于std名稱空間。
1.8.2 從玩家獲取信息
接下來程序從玩家獲取一些信息。
int main()
{
const int GOLD_PIECES = 900;
int adventurers, killed, survivors;
string leader;
//get the information
cout << "Welcome to Lost Fortune\n\n";
cout << "Please enter the following for your personalized adventure\n";
cout << "Enter a number: ";
cin >> adventurers;
cout << "Enter a number, smaller than the first: ";
cin >> killed;
survivors = adventurers - killed;
cout << "Enter your last name: ";
cin >> leader;
GOLD_PIECES是常量,用于存儲探險家要尋找的寶藏中金塊的數(shù)目。adventurers用于存儲探險家的總數(shù)目。killed用于存儲在旅途中死亡的探險家數(shù)目。程序計算出幸存的探險家數(shù)目并存儲在survivors中。最后,程序還要獲取玩家名字,存儲在leader中。
陷阱
簡單地使用cin從用戶獲取字符串的方法只適用于字符串不包含空白字符(如制表符或空格)的情況。有方法可以彌補這一點,但這會涉及到流的概念,超出了本章的討論范圍。因此,還是像這樣使用cin,但要注意它的限制。