出版時(shí)間:2011-11 出版社:清華大學(xué) 作者:道森 頁(yè)數(shù):293 譯者:萬(wàn)千
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書從游戲視角來(lái)介紹C++,既獨(dú)具匠心又妙趣橫生。即使讀者初學(xué)C++,還沒(méi)有任何編程經(jīng)驗(yàn),也可以在Michael
Dawson的循循善誘下掌握C++的各種概念與技巧。書中每章涵蓋一系列彼此相關(guān)的主題,并在結(jié)尾部分編寫一個(gè)簡(jiǎn)單的文本游戲來(lái)鞏固所學(xué)概念。隨著學(xué)習(xí)的深入,讀者將學(xué)會(huì)如何組織編程項(xiàng)目,如何將問(wèn)題分解為可管理的子問(wèn)題塊,以及如何精煉代碼。最后一章的游戲?qū)⒕C合運(yùn)用《游戲開(kāi)發(fā)經(jīng)典叢書:通過(guò)游戲編程實(shí)戰(zhàn)教新手學(xué)C++編程》介紹的概念與技巧,創(chuàng)建一個(gè)相對(duì)復(fù)雜的游戲。讀完《游戲開(kāi)發(fā)經(jīng)典叢書:通過(guò)游戲編程實(shí)戰(zhàn)教新手學(xué)C++編程》,您將為C++開(kāi)發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。
作者簡(jiǎn)介
道森,Michael Dawson,是一位游戲編程圖書的作者。他為UCLA Extension、The Digital
MediaAcademy和The Los Angeles Film
School開(kāi)設(shè)并執(zhí)教游戲編程課程,指導(dǎo)學(xué)生游戲編程的藝術(shù)與科學(xué)。另外,他的多部著作已成為國(guó)內(nèi)多所大學(xué)的必讀書目。Mike以游戲制作人和設(shè)計(jì)師的身份進(jìn)入游戲行業(yè),同時(shí)還在一個(gè)玩家冒險(xiǎn)游戲中擔(dān)任主角——玩家控制的角色的名字就叫Mike
Dawson。在游戲中,Dawson的大腦中被植入了外星人的胚胎,玩家要指揮數(shù)字化形象的Dawson在胚胎誕生之前阻止外星人的入侵。Mike的著作包括《通過(guò)游戲編程實(shí)戰(zhàn)教新手學(xué)C++編程》、Python
Programming for theAbsolute Beginner、C++Projects:Programming with
Text-Based Games以及Guide to Programming with
Bython。他在南加州大學(xué)獲得計(jì)算機(jī)科學(xué)學(xué)士學(xué)位。
書籍目錄
第1章 類型、變量與標(biāo)準(zhǔn)
i/o:lost fortune
1.1 c++簡(jiǎn)介
1.1.1 使用c++編寫游戲
1.1.2 生成可執(zhí)行文件
1.1.3 錯(cuò)誤處理
1.1.4 理解iso標(biāo)準(zhǔn)
1.2 編寫第一個(gè)c++程序
1.2.1 game over程序簡(jiǎn)介
1.2.2 注釋
1.2.3 使用空白字符
1.2.4 包含其他文件
1.2.5 定義main()函數(shù)
1.2.6 通過(guò)標(biāo)準(zhǔn)輸出顯示文本
1.2.7 語(yǔ)句的終止
1.2.8 從main()函數(shù)返回值
1.3 使用std名稱空間
1.3.1 game over 2.0程序簡(jiǎn)介
1.3.2 使用using指令
.1.3.3 game over 3.0程序簡(jiǎn)介
1.3.4 使用using聲明
1.3.5 使用using的時(shí)機(jī)
1.4 使用算術(shù)運(yùn)算符
1.4.1 expensive calculator程序簡(jiǎn)介
1.4.2 加法、減法與乘法
1.4.3 理解整型與浮點(diǎn)型除法
1.4.4 使用取模運(yùn)算符
1.4.5 運(yùn)算符的優(yōu)先級(jí)
1.5 聲明和初始化變量
1.5.1 game stats程序簡(jiǎn)介
1.5.2 基本類型
1.5.3 類型修飾符
1.5.4 變量聲明
1.5.5 變量命名
1.5.6 變量的賦值
1.5.7 變量初始化
1.5.8 顯示變量值
1.5.9 獲取用戶輸入
1.5.10 為類型定義新名稱
1.5.11 類型的選擇
1.6 使用變量進(jìn)行算術(shù)運(yùn)算
1.6.1 game stats 2.0程序簡(jiǎn)介
1.6.2 修改變量值
1.6.3 使用組合賦值運(yùn)算符
1.6.4 遞增運(yùn)算符與遞減運(yùn)算符
1.6.5 整數(shù)的溢出處理
1.7 使用常量
1.7.1 game stats 3.0程序簡(jiǎn)介
1.7.2 使用常量
1.7.3 使用枚舉類型
1.8 lost fortune簡(jiǎn)介
1.8.1 創(chuàng)建程序
1.8.2 從玩家獲取信息
1.8.3 講故事
1.9 本章小結(jié)
1.10 問(wèn)與答
1.11 問(wèn)題討論
1.12 習(xí)題
第2章 真值、分支與游戲循環(huán):
guess my number
2.1 理解真值
2.2 使用if語(yǔ)句
2.2.1 score rater程序簡(jiǎn)介
2.2.2 驗(yàn)證真與假
2.2.3 值的真與假
2.2.4 使用關(guān)系運(yùn)算符
2.2.5 if語(yǔ)句的嵌套
2.3 使用else子句
2.3.1 score rater 2.0程序簡(jiǎn)介
2.3.2 創(chuàng)建分支
2.4 使用帶else子句的if語(yǔ)句序列
2.4.1 score rater 3.0程序簡(jiǎn)介
2.4.2 創(chuàng)建帶else子句的if語(yǔ)句序列
2.5 使用switch語(yǔ)句
2.5.1 menu chooser程序簡(jiǎn)介
2.5.2 創(chuàng)建多路分支
2.6 使用while循環(huán)
2.6.1 play again游戲簡(jiǎn)介
2.6.2 使用while循環(huán)
2.7 使用do循環(huán)
2.7.1 play again 2.0程序簡(jiǎn)介
2.7.2 使用do循環(huán)
2.8 使用break和continue語(yǔ)句
2.8.1 finicky counter程序簡(jiǎn)介
2.8.2 創(chuàng)建while(true)循環(huán)
2.8.3 使用break語(yǔ)句退出循環(huán)
2.8.4 使用continue語(yǔ)句跳轉(zhuǎn)到循環(huán)開(kāi)始
2.8.5 使用break和continue的時(shí)機(jī)
2.9 使用邏輯運(yùn)算符
2.9.1 designers network程序簡(jiǎn)介
2.9.2 使用邏輯與運(yùn)算符
2.9.3 使用邏輯或運(yùn)算符
2.9.4 使用邏輯非運(yùn)算符
2.9.5 運(yùn)算符的優(yōu)先級(jí)
2.10 隨機(jī)數(shù)的生成
2.10.1 die roller程序簡(jiǎn)介
2.10.2 調(diào)用rand()函數(shù)
2.10.3 為隨機(jī)數(shù)生成器確定種子
2.10.4 在一定范圍內(nèi)計(jì)算
2.11 理解游戲主循環(huán)
2.12 guess my number游戲簡(jiǎn)介
2.12.1 采用游戲主循環(huán)
2.12.2 初始化游戲
2.12.3 創(chuàng)建游戲主循環(huán)
2.12.4 游戲結(jié)束
2.13 本章小結(jié)
2.14 問(wèn)與答
2.15 問(wèn)題討論
2.16 習(xí)題
第3章 for循環(huán)、字符串與數(shù)組:
word jumble
3.1 使用for循環(huán)
3.1.1 counter程序簡(jiǎn)介
3.1.2 使用for循環(huán)計(jì)數(shù)
3.1.3 在for循環(huán)中使用空語(yǔ)句
3.1.4 for循環(huán)的嵌套
3.2 理解對(duì)象
3.3 使用string對(duì)象
3.3.1 string tester程序簡(jiǎn)介
3.3.2 創(chuàng)建string對(duì)象
3.3.3 string對(duì)象的連接
3.3.4 使用size()成員函數(shù)
3.3.5 索引string對(duì)象
3.3.6 循環(huán)訪問(wèn)string對(duì)象
3.3.7 使用find()成員函數(shù)
3.3.8 使用erase()成員函數(shù)
3.3.9 使用empty()成員函數(shù)
3.4 使用數(shù)組
3.4.1 hero's inventory程序簡(jiǎn)介
3.4.2 創(chuàng)建數(shù)組
3.4.3 數(shù)組的索引
3.4.4 使用數(shù)組元素的成員函數(shù)
3.4.5 數(shù)組邊界
3.5 理解c風(fēng)格字符串
3.6 使用多維數(shù)組
3.6.1 tic-tac-toe board程序簡(jiǎn)介
3.6.2 創(chuàng)建多維數(shù)組
3.6.3 多維數(shù)組的索引
3.7 word jumble程序簡(jiǎn)介
3.7.1 創(chuàng)建程序
3.7.2 選擇單詞
3.7.3 單詞亂序
3.7.4 歡迎界面
3.7.5 進(jìn)入游戲主循環(huán)
3.7.6 游戲結(jié)束
3.8 本章小結(jié)
3.9 問(wèn)與答
3.10 問(wèn)題討論
3.11 習(xí)題
第4章 標(biāo)準(zhǔn)模板庫(kù):hangman
4.1 標(biāo)準(zhǔn)模板庫(kù)簡(jiǎn)介
4.2 使用vector
4.2.1 hero's inventory 2.0程序簡(jiǎn)介
4.2.2 使用向量的準(zhǔn)備工作
4.2.3 向量的聲明
4.2.4 使用push_back()成員函數(shù)
4.2.5 使用size()成員函數(shù)
4.2.6 向量的索引
4.2.7 調(diào)用元素的成員函數(shù)
4.2.8 使用pop_back()成員函數(shù)
4.2.9 使用clear()成員函數(shù)
4.2.10 使用empty()成員函數(shù)
4.3 使用迭代器
4.3.1 hero's inventory 3.0程序簡(jiǎn)介
4.3.2 迭代器的聲明
4.3.3 循環(huán)訪問(wèn)向量
4.3.4 修改向量元素的值
4.3.5 訪問(wèn)向量元素的成員函數(shù)
4.3.6 使用向量的成員函數(shù)insert()
4.3.7 使用向量的成員函數(shù)erase()
4.4 使用算法
4.4.1 high scores程序簡(jiǎn)介
4.4.2 使用算法的準(zhǔn)備工作
4.4.3 使用find()算法
4.4.4 使用random_shuffle()算法
4.4.5 使用sort()算法
4.5 理解向量的性能
4.5.1 向量的增長(zhǎng)
4.5.2 元素的插入與刪除
4.6 其他stl容器
4.7 對(duì)程序進(jìn)行規(guī)劃
4.7.1 使用偽代碼
4.7.2 逐步細(xì)化
4.8 hangman簡(jiǎn)介
4.8.1 游戲規(guī)劃
4.8.2 創(chuàng)建程序
4.8.3 變量與常量的初始化
4.8.4 進(jìn)入游戲主循環(huán)
4.8.5 獲取玩家的猜測(cè)
4.8.6 游戲結(jié)束
4.9 本章小結(jié)
4.10 問(wèn)與答
4.11 問(wèn)題討論
4.12 習(xí)題
第5章 函數(shù):mad lib
5.1 創(chuàng)建函數(shù)
5.1.1 instructions程序簡(jiǎn)介
5.1.2 函數(shù)聲明
5.1.3 函數(shù)定義
5.1.4 函數(shù)調(diào)用
5.1.5 理解抽象
5.2 使用形參和返回值
5.2.1 yes or no程序簡(jiǎn)介
5.2.2 返回值
5.2.3 傳遞參數(shù)值
5.2.4 理解封裝
5.3 理解軟件重用
5.4 使用作用域
5.4.1 scoping程序簡(jiǎn)介
5.4.2 使用獨(dú)立的作用域
5.4.3 使用嵌套作用域
5.5 使用全局變量
5.5.1 global reach程序簡(jiǎn)介
5.5.2 聲明全局變量
5.5.3 訪問(wèn)全局變量
5.5.4 隱藏全局變量
5.5.5 修改全局變量
5.5.6 盡量少使用全局變量
5.6 使用全局常量
5.7 使用默認(rèn)參數(shù)
5.7.1 give me a number程序簡(jiǎn)介
5.7.2 指定默認(rèn)參數(shù)
5.7.3 為形參設(shè)置默認(rèn)參數(shù)
5.7.4 重寫默認(rèn)參數(shù)
5.8 函數(shù)重載
5.8.1 triple程序簡(jiǎn)介
5.8.2 創(chuàng)建重載函數(shù)
5.8.3 調(diào)用重載函數(shù)
5.9 內(nèi)聯(lián)函數(shù)
5.9.1 taking damage程序簡(jiǎn)介
5.9.2 函數(shù)內(nèi)聯(lián)的指定
5.9.3 調(diào)用內(nèi)聯(lián)函數(shù)
5.10 mad lib游戲簡(jiǎn)介
5.10.1 創(chuàng)建程序
5.10.2 main()函數(shù)
5.10.3 asktext()函數(shù)
5.10.4 asknumber()函數(shù)
5.10.5 tellstory()函數(shù)
5.11 本章小結(jié)
5.12 問(wèn)與答
5.13 問(wèn)題討論
5.14 習(xí)題
第6章 引用:tic-tac-toe
6.1 使用引用
6.1.1 referencing程序簡(jiǎn)介
6.1.2 創(chuàng)建引用
6.1.3 訪問(wèn)被引用的值
6.1.4 修改被引用的值
6.2 通過(guò)傳遞引用改變實(shí)參
6.2.1 swap程序簡(jiǎn)介
6.2.2 按值傳遞參數(shù)
6.2.3 按引用傳遞參數(shù)
6.3 傳遞引用以提高效率
6.3.1 inventory displayer程序簡(jiǎn)介
6.3.2 引用傳遞的陷阱
6.3.3 以常量引用聲明參數(shù)
6.3.4 傳遞常量引用
6.4 如何傳遞實(shí)參
6.5 返回引用
6.5.1 inventory referencer程序簡(jiǎn)介
6.5.2 返回一個(gè)引用
6.5.3 顯示返回的引用的值
6.5.4 將返回的引用賦值給引用
6.5.5 將返回的引用賦值給變量
6.5.6 通過(guò)返回的引用修改對(duì)象
6.6 tic-tac-toe游戲簡(jiǎn)介
6.6.1 游戲規(guī)劃
6.6.2 創(chuàng)建程序
6.6.3 main()函數(shù)
6.6.4 instructions()函數(shù)
6.6.5 askyesno()函數(shù)
6.6.6 asknumber()函數(shù)
6.6.7 humanpiece()函數(shù)
6.6.8 opponent()函數(shù)
6.6.9 displayboard()函數(shù)
6.6.10 winner()函數(shù)
6.6.11 islegal()函數(shù)
6.6.12 humanmove()函數(shù)
6.6.13 computermove()函數(shù)
6.6.14 announcewinner()函數(shù)
6.7 本章小結(jié)
6.8 問(wèn)與答
6.9 問(wèn)題討論
6.10 習(xí)題
第7章 指針:tic-tac-toe 2.0
7.1 指針基礎(chǔ)
7.1.1 pointing程序簡(jiǎn)介
7.1.2 指針的聲明
7.1.3 指針的初始化
7.1.4 將地址賦值給指針
7.1.5 指針的解引用
7.1.6 指針的重新賦值
7.1.7 使用對(duì)象的指針
7.2 指針和常量
7.2.1 使用常量指針
7.2.2 使用指向常量的指針
7.2.3 使用指向常量的常量指針
7.2.4 常量與指針小結(jié)
7.3 傳遞指針
7.3.1 swap pointer version程序簡(jiǎn)介
7.3.2 值傳遞
7.3.3 傳遞常量指針
7.4 返回指針
7.4.1 inventory pointer程序簡(jiǎn)介
7.4.2 返回指針
7.4.3 使用返回的指針顯示值
7.4.4 將返回的指針賦值給指針
7.4.5 將返回的指針指向的值賦值給變量
7.4.6 通過(guò)返回的指針修改對(duì)象
7.5 理解指針與數(shù)組的關(guān)系
7.5.1 array passer程序簡(jiǎn)介
7.5.2 將數(shù)組名用作常量指針
7.5.3 數(shù)組的傳遞與返回
7.6 tic-tac-toe 2.0程序簡(jiǎn)介
7.7 本章小結(jié)
7.8 問(wèn)與答
7.9 問(wèn)題討論
7.10 習(xí)題
第8章 類:critter caretaker
8.1 定義新類型
8.1.1 simple critter程序簡(jiǎn)介
8.1.2 類的定義
8.1.3 成員函數(shù)的定義
8.1.4 對(duì)象的實(shí)例化
8.1.5 數(shù)據(jù)成員的訪問(wèn)
8.1.6 成員函數(shù)的調(diào)用
8.2 使用構(gòu)造函數(shù)
8.2.1 constructor critter程序簡(jiǎn)介
8.2.2 構(gòu)造函數(shù)的聲明與定義
8.2.3 構(gòu)造函數(shù)的自動(dòng)調(diào)用
8.3 設(shè)置成員訪問(wèn)級(jí)別
8.3.1 private critter程序簡(jiǎn)介
8.3.2 指定公有與私有訪問(wèn)級(jí)別
8.3.3 定義訪問(wèn)器成員函數(shù)
8.3.4 定義常量成員函數(shù)
8.4 使用靜態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù)
8.4.1 static critter程序簡(jiǎn)介
8.4.2 聲明與初始化靜態(tài)數(shù)據(jù)成員
8.4.3 訪問(wèn)靜態(tài)數(shù)據(jù)成員
8.4.4 聲明與定義靜態(tài)成員函數(shù)
8.4.5 調(diào)用靜態(tài)成員函數(shù)
8.5 critter caretaker游戲簡(jiǎn)介
8.5.1 游戲規(guī)劃
8.5.2 規(guī)劃偽代碼
8.5.3 critter類
8.5.4 main()函數(shù)
8.6 本章小結(jié)
8.7 問(wèn)與答
8.8 問(wèn)題討論
8.9 習(xí)題
第9章 高級(jí)類與動(dòng)態(tài)內(nèi)存:
game lobby
9.1 使用聚合體
9.1.1 critter farm程序簡(jiǎn)介
9.1.2 使用對(duì)象數(shù)據(jù)成員
9.1.3 使用容器數(shù)據(jù)成員
9.2 使用友元函數(shù)與運(yùn)算符重載
9.2.1 friend critter程序簡(jiǎn)介
9.2.2 創(chuàng)建友元函數(shù)
9.2.3 運(yùn)算符重載
9.3 動(dòng)態(tài)分配內(nèi)存
9.3.1 heap程序簡(jiǎn)介
9.3.2 使用new運(yùn)算符
9.3.3 使用delete運(yùn)算符
9.3.4 避免內(nèi)存泄漏
9.4 使用數(shù)據(jù)成員與堆
9.4.1 heap data member程序簡(jiǎn)介
9.4.2 聲明指向堆中值的指針數(shù)據(jù)成員
9.4.3 聲明與定義析構(gòu)函數(shù)
9.4.4 聲明與定義拷貝構(gòu)造函數(shù)
9.4.5 賦值運(yùn)算符的重載
9.5 game lobby程序簡(jiǎn)介
9.5.1 player類
9.5.2 lobby類
9.5.3 lobby::addplayer()成員函數(shù)
9.5.4 lobby::removeplayer()成員函數(shù)
9.5.5 lobby::clear()成員函數(shù)
9.5.6 operator[[()成員函數(shù)
9.5.7 main()函數(shù)
9.6 本章小結(jié)
9.7 問(wèn)與答
9.8 問(wèn)題討論
9.9 習(xí)題
第10章 繼承與多態(tài):blackjack
附錄a 創(chuàng)建第一個(gè)c++程序
附錄b 運(yùn)算符優(yōu)先級(jí)
附錄c 關(guān)鍵字
附錄d ascii字符表
附錄e 轉(zhuǎn)義序列
章節(jié)摘錄
版權(quán)頁(yè):插圖:以上介紹了兩種使名稱空間中的元素本地化的方法。但是哪種方法更好呢?語(yǔ)言純粹主義者會(huì)說(shuō)兩種方法都不可取,而應(yīng)該在每次使用這些元素的時(shí)候加上前綴作為區(qū)別。在我看來(lái),這就如同總是使用全名來(lái)稱呼您最好的朋友,顯得過(guò)于正式。如果您討厭輸入太多字符,可以使用using指令。較為折中的方案是使用using聲明。為了簡(jiǎn)潔起見(jiàn),本書大多數(shù)時(shí)候使用using指令。
編輯推薦
《游戲開(kāi)發(fā)經(jīng)典叢書:通過(guò)游戲編程實(shí)戰(zhàn)教新手學(xué)C++編程》由清華大學(xué)出版社出版。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
通過(guò)游戲編程實(shí)戰(zhàn)教新手學(xué)C++編程 PDF格式下載