C++游戲編程入門(第4版)

C++游戲編程入門(第4版)
定價:354
NT $ 280
 

內容簡介

本書從游戲編程的角度介紹C++語言,既獨具匠心又妙趣橫生。

全書共10章,每章介紹C++語言的一個或數個重要的知識領域,同時通過一個游戲示例項目的開發進行實踐和講解。每章的結尾,會在一個游戲項目中將一些最重要的概念組合起來。最后一章的游戲將綜合運用本書介紹的概念與技巧,創建一個相對復雜的游戲,涵蓋了本書介紹過的所有主要概念。隨着學習的深入,讀者將學會如何組織編程項目,如何將問題分解為可管理的子問題塊,以及如何精煉代碼。

本書適合任何想編寫游戲的讀者,主要針對初學者,並假設讀者之前沒有任何編程經驗。通過閱讀本書,並在實驗中實踐,讀者將為掌握C++這門語言並為游戲編程打下堅實的基礎。

Michael Dawson是一位程序員、游戲設計師和游戲開發者。他獲得了南加州大學的計算機科學學士學位,並且目前教授大學生學習游戲編程。Mike的著作包括Beginning C++ Through Game Programming, Python Programming for the Absolute Beginner, C++ Projects: Programming withText-Based Games和 Guide to Programming with Python。請訪問他的網站www.programgames.com,了解他的圖書的更多信息,並獲得相關的支持。
 

目錄

第1章 類型、變量與標准I/O:Lost Fortune
1.1C++簡介
1.1.1使用C++編寫游戲
1.1.2生成可執行文件
1.1.3錯誤處理
1.1.4理解ISO標准
1.2編寫第一個C++程序
1.2.1Game Over程序簡介
1.2.2注釋
1.2.3使用空白字符
1.2.4包含其他文件
1.2.5定義main()函數
1.2.6通過標准輸出顯示文本
1.2.7語句的終止
1.2.8從main()數返回值
1.3使用std名稱空間
1.3.1Game Over 20程序簡介
1.3.2使用using指令
1.3.3Game Over 3.0程序簡介
1.3.4使用using聲明
1.3.5使用using的時機
1.4使用算術運算符—
1.4.1Expensive Caleulator程序簡介
1.4.2加法、減法與乘法
1.4.3理解整型與浮點型除法
1.4.4使用模除運算符
1.4.5運算符的優先級
1.5聲明和初始化變量
1.5.1Game Stats程序簡介
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使用變量進行算術運算
1.6.1Game Stats 2.0程序簡介
1.6.2修改變量值
1.6.3使用組合賦值運算符
1.6.4遞增運算符與遞減運算符
1.6.5整數的溢出處理
1.7使用常量
1.7.1Galne Stats 30程序簡介
1.7.2使用常量
1.7.3使用枚舉類型
1.8Lost Fortune簡介
1.8.1創建程序
1.8.2從玩家獲取信息
1.8.3講故事
1.9本章小結
1.10問與答
1.11問題討論
1.12習題

第2章 真值、分支與游戲循環:Guess My Number
2.1理解真值
2.2使用if語句
2.2.1ScoreRater程序簡介
2.2.2驗證真與假
2.2.3值的真與假
2.2.4使用關系運算符
2.2.5if語句的嵌套
2.3使用else子句
2.3.1Score Rater 2.0程序簡介
2.3.2兩種創建分支的方法
2.4使用帶dse子旬的if語句序列
2.4.1Score Rater 3.0程序簡介
2.4.2創建帶else子句的if語句序列
2.5使用switch語句
2.5.1MLend chooser程序簡介
2.5.2創建多路分支
2.6使用while循環
2.6.1Play Again游戲簡介
2.6.2使用while循環
2.7使用do循環
2.7.1Play Again 20程序簡介
2.7.2使用do循環
2.8使用break和continue語句
2.8.1Finicky Cotmter程序簡介
2.8.2創建while(true)循環
2.8.3使用break語句退出循環
2.8.4使用continue語句跳轉到循環開始
2.8.5使用break和continue的時機
2.9使用邏輯運算符
2.9.1Designers Network程序簡介
2.9.2使用邏輯與運算符
2.9.3使用邏輯或運算符
2.9.4使用邏輯非運算符
2.9.5運算符的優先級
2.10隨機數的生成
2.10.1Die Roller程序簡介
2.10.2調用rand()函數
2.10.3為隨機教生成囂確定種子
2.10.4在一定范圍內計算
2.11理解游戲主循環
2.12Guess My Number游戲簡介
2.12.1采用游戲主循環
2.12.2初始化游戲
2.12.3創建游戲主循環
2.12.4游戲結束
2.13本章小結
2.14問與答
2.15問題討論
2.16習題

第3章 for循環、字符串與數組:Word Jumble
3.1使用for循環
3.1.1Counter程序簡介
3.1.2使用for循環計數
3.1.3在for循環中使用空語句
3.1.4for循環的嵌套
3.2了解對象
3.3使用string對象
3.3.1String Tester程序簡介
3.3.2創建string對象
3.3.3string對象的連接
3.3.4使用size()成員函數
3.3.5索引string對象
3.3.6循環訪問string對象
3.3.7使用find()成員函數
3.3.8使用erase()成員函數
3.3.9使用empty()成員函數
3.4使用數組
3.4.1Hero』s Inventory程序簡介
3.4.2創建數組
3.4.3數組的索引
3.4.4使用數組元素的成員函數
3.4.5數組邊界
3.5理解C風格字符串
3.6使用多維數組
3.6.1Tic—Tac—Toe Board程序簡介
3.6.2創建多維數組
3.6.3多維數組的索引
3.7Word Jumble程序簡介
3.7.1創建程序
3.7.2選擇單詞
3.7.3單詞亂序
3.7.4歡迎界面
3.7.5進入游戲主循環
3.7.6游戲結束
3.8本章小結
3.9問與答
3.10問題討論
3.11習題

第4章 標准模板庫:Hangman
4.1標准模板庫簡介
4.2使用vector
4.2.1Hero』s Inventory 2.0程序簡介
4.2.2使用向量的准備工作
4.2.3向量的聲明
4.2.4使用push_back()成員函數
4.2.5使用size()成員函數
4.2.6向量的索引
4.2.7調用元素的成員函數
4.2.8使用pop_back()成員函數
4.2.9使用clear()成員函數
4.2.10使用empty()成員函數
4.3使用迭代器
4.3.1Hero』s Inventory 3.0程序簡介
4.3.2迭代器的聲明
4.3.3循環訪問向量
4.3.4修改向量元素的值
4.3.5訪問向量元素的成員函數
4.3.6使用向量的成員函數insert()
4.3.7使用向量的成員函數erase()
4.4使用算法
4.4.1High Scores程序簡介
4.4.2使用算法的准備工作
4.4.3使用find()算法
4.4.4使用random_shuffle()算法
4.4.5使用sort()算法
4.5理解向量的性能
4.5.1向量的增長
4.5.2元素的插入與刪除
4.6其他STL容器
4.7對程序進行規划
4.7.1使用偽代碼
4.7.2逐步細化
4.8Hangman簡介
4.8.1游戲規划
4.8.2創建程序
4.8.3變量與常量的初始
4.8.4進入游戲主循環
4.8.5獲取玩家的猜測
4.8.6游戲結束
4.9本章小結
4.10問與答
4.11問題討論
4.12習題

第5章 函數:Mad Lib
5.1創建函數
5.1.1Instructions程序簡介
5.1.2函數聲明
5.1.3函數定義
5.1.4函數調用
5.1.5理解抽象
5.2使用形參和返回值
5.2.1Yes or No程序簡介
5.2.2返回值
5.2.3傳遞參數值
5.2.4理解封裝
5.3理解軟件重用
5.4使用作用域
5.4.1Scoping程序簡介
5.4.2使用獨立的作用域
5.4.3使用嵌套作用域
5.5使用全局變量
5.5.1Global Reach程序簡介
5.5.2聲明全局變量
5.5.3訪問全局變量
5.5.4隱藏全局變量
5.5.5修改全局變量
5.5.6盡量少使用全局變量
5.6使用全局常量
5.7使用默認參數
5.7.1Give Me a Number程序簡介
5.7.2指定默認參數
5.7.3為形參沒置默認參數
5.7.4重寫默認參數
5.8函數重載
5.8.1Triple程序簡介
5.8.2創建重載函數
5.8.3調用重載函數
5.9內聯函數
5.9.1Taking Damage程序簡介
5.9.2函數內聯的指定
5.9.3調用內聯函數
5.10Mad Lib游戲簡介
5.10.1創建程序
5.10.2main()函數
5.10.3askText()函數
5.10.4askNumber()函數
5.10.5tellStory()函數
5.11本章小結
5.12問與答
5.13問題討論
5.14習題

第6章 引用:Tic—Tac—Toe
6.1使用引用
6.1.1Referencing程序簡介
6.1.2創建引用
6.1.3訪問被引用的值
6.1.4修改被引用的值
6.2通過傳遞引用改變實參
6.2.1Swap程序簡介
6.2.2按值傳遞參數—
6.2.3按引用傳遞參數
6.3傳遞引用以提高效率
6.3.1Inventory Displayer程序簡介
6.3.2引用傳遞的陷阱
6.3.3以常量引用聲明參數
6.3.4傳遞常量引用
6.4如何傳遞實參
6.5返回引用
6.5.1Inventory Referencer程序簡介
6.5.2返回一個引用
6.5.3顯示返回的引用的值
6.5.4將返回的引用賦值給引用
6.5.5將返回的引用賦值給變量
6.5.6通過返回的引用修改對象
6.6Tic—Tae—Toe游戲簡介
6.6.1游戲規划
6.6.2創建程序
6.6.3main()函數
6.6.4instructions()函數
6.6.5askYesNo()函數
6.6.6askNumber()函數
6.6.7humanPiece()函數
6.6.8opponent()函數
6.6.9displayBoard()函數
6.6.10winner()函數
6.6.11isLegal()函數
6.6.12humanMove()函數
6.6.13computerMove()函數
6.6.14announceWinner()函數
6.7本章小結
6.8問與答
6.9問題討論
6.10習題

第7章 指針:Tic—Tac—Toe 2.0
7.1指針基礎
7.1.1Pointing程序簡介
7.1.2指針的聲明
7.1.3指針的初始化—
7.1.4將地址賦值給指針
7.1.5指針的解引用
7.1.6指針的重新賦值
7.1.7使用對象的指針
7.2指針和常量
7.2.1使用常量指針
7.2.2使用指向常量的指針
7.2.3使用指向常量的常量指針
7.2.4常量與指針小結
7.3傳遞指針
7.3.1Swap Pointer Version程序簡介
7.3.2值傳遞
7.3.3傳遞常量指針
7.4返回指針
7.4.1Inventory Pointer程序簡介
7.4.2返回指針
7.4.3使用返回的指針顯示值
7.4.4將返回的指針賦值給指針
7.4.5將返回的指針指向的值賦值給變量
7.4.6通過返回的指針修改對象
7.5理解指針與數組的關系
7.5.1Array Passer程序簡介
7.5.2將數組名用作常量指針
7.5.3數組的傳遞與返回
7.6Tic—Tac—Toe 2.0程序簡介
7.7本章小結
7.8問與答
7.9問題討論
7.10習題

第8章 類:Critter Caretaker
8.1定義新類型
8.1.1Simple Critter程序簡介
8.1.2定義一個類
8.1.3成員函數的定義
8.1.4對象的實例化
8.1.5數據成員的訪問
8.1.6成員函數的調用
8.2使用構造函數
8.2.1Constructor Critter程序簡介
8.2.2構造函數的聲明與定義
8.2.3構造函數的自動調用
8.3設置成員訪問級別
8.3.1Private Critter程序簡介
8.3.2指定公有與私有訪問級別
8.3.3定義訪問器成員函數
8.3.4定義常量成員函數
8.4使用靜態數據成員與靜態成員函數
8.4.1Static Critter程序簡介
8.4.2聲明與初始化靜態數據成員
8.4.3訪問靜態數據成員
8.4.4聲明與定義靜態成員函數
8.4.5調用靜態成員函數
8.5Critter Caretaker游戲簡介
8.5.1游戲規划
8.5.2規划偽代碼
8.5.3Critter類
8.5.4main()函數
8.6本章小結
8.7問與答
8.8問題討論
8.9習題

第9章 高級類與動態內存:Game Lobby
9.1使用聚合體
9.1.1Criner Farm程序簡介
9.1.2使用對象數據成員
9.1.3使用容器數據成員
9.2使用友元函數與運算符重載
9.2.1Friend Critter程序簡介
9.2.2創建友元函數
9.2.3運算符重載
9.3動態分配內存
9.3.1Heap程序簡介
9.3.2使用new運算符
9.3.3避免內存泄漏
9.4使用數據成員與堆
9.4.1Heap Data Member程序簡介
9.4.2聲明指向堆中值的指針數據成員
9.4.3聲明與定義析構函數
9.4.4聲明與定義拷貝構造函數
9.4.5賦值運算符的重載
9.5Game Lobby程序簡介
9.5.1Player類
9.5.2Lobby類
9.5.3Lobby::AddPlayer()成員函數
9.5.4Lobby::RemovePlayer()成員函數
9.5.5Lobby::Clean()成員函數
9.5.6operator<<()成員函數
9.5.7main()函數
9.6本章小結
9.7問與答
9.8問題討論
9.9習題
……
第10章 繼承與多態:Blackjack

附錄A 創建第一個C++程序
附錄B 運算符優先級
附錄C 關鍵字
附錄D ASCII字符表
附錄E 轉義序列
網路書店 類別 折扣 價格
  1. 新書
    79
    $280