C語言程序設計 — 以機器博弈為例 (微課版)
邱虹坤、王亞傑、孫玉霞、劉成、王曉岩、郭建新、楊煦
買這商品的人也買了...
-
$374明解 C語言, 3/e (入門篇)
-
$534$507 -
$400$312 -
$40321天學通 C++ (第8版)
-
$260$234 -
$354$336 -
$403零基礎學 C語言, 4/e
-
$680$537 -
$450$356 -
$354$336 -
$880$695 -
$458代替 VBA!用 Python 輕松實現 Excel 編程
-
$720$562 -
$420$378 -
$281計算機博弈案例教程
-
$294$279 -
$680$537 -
$600$468 -
$680$476 -
$780$616 -
$720$360 -
$359$341 -
$720$504 -
$352巧用 ChatGPT 輕鬆學演講
-
$780$608
相關主題
商品描述
本書以機器博弈為例,系統地介紹了C語言程序設計。本書共13章,主要包括C語言概述、算法基礎、數據類型與表達式,選擇結構、循環結構、數組、函數、預處理與位運算、指針、結構體和鏈表、文件、面向對象編程基礎等內容,並在每章後附加人工智能(機器博弈)相關知識的擴展閱讀。 本書可作為高等院校程序設計課程的教材或教輔資料,也可作為機器博弈競賽的入門教材及機器博弈愛好者的參考書。
目錄大綱
目錄
第1章C語言概述/1
1.1電腦語言/1
1.1.1低級語言和高級語言/1
1.1.2面向過程和麵向對象/2
1.2C語言概述/3
1.2.1C語言的發展/3
1.2.2C語言的特點/3
1.3C語言程序示例/4
1.4C語言程序的開發過程/8
1.5小結/13
1.6習題/13
1.7擴展閱讀——初識人工智能/14
第2章算法基礎/16
2.1算法的概念/16
2.2算法的描述方法/17
2.3機器博弈的概念/19
2.4博弈算法/21
2.4.1搜索算法的分類與特點/21
2.4.2典型博弈算法介紹/21
2.5機器博弈項目規則/23
2.5.1井字棋規則/23
2.5.2亞馬遜棋規則/23
2.5.3五子棋規則/24
2.5.4愛恩斯坦棋規則/24
2.6小結/252.7習題/25
2.8擴展閱讀——機器博弈的發展歷程/25
第3章數據類型與表達式/28
3.1棋局要素/29
3.2常量與變量/30
3.2.1常量/30
3.2.2變量/33
3.2.3變量的定義與聲明/34
3.2.4變量初始化/35
3.3數據類型轉換/36
3.3.1隱式類型轉換/36
3.3.2顯式類型轉換/37
3.4運算符和表達式/38
3.4.1算術運算符及其表達式/38
3.4.2賦值運算符及其表達式/39
3.4.3機器博弈中的局面評估函數/40
3.5輸入與輸出/40
3.5.1字符輸入/輸出函數/40
3.5.2棋局信息輸出/41
3.5.3棋局信息輸入/43
3.6小結/45
3.7習題/45
3.8擴展閱讀——機器博弈競賽/46
第4章選擇結構/48
4.1引例/48
4.2關系運算與邏輯運算/49
4.2.1關系運算符及其表達式/49
4.2.2邏輯運算符及其表達式/50
4.2.3井字棋落子坐標合法性判斷/51
4.3if語句/52
4.3.1簡單邏輯判斷/52
4.3.2復雜邏輯判斷/56
4.3.3井字棋步數和落子顏色判斷/57
4.4switch語句/58
4.4.1switch語句的基本應用/59
4.4.2愛恩斯坦棋著法選擇/60
4.5小結/60
4.6習題/60
4.7擴展閱讀——機器博弈系統組成/61
第5章循環結構/63
5.1引例/63
5.23種循環語句/64
5.2.1while語句/64
5.2.2do…while語句/64
5.2.3for語句/66
5.3計數循環/67
5.3.1計數循環的基本應用/67
5.3.2蒙特卡洛方法求π的近似值/69
5.3.3井字棋隨機落子/70
5.4條件循環/71
5.4.1條件循環的基本應用/71
5.4.2井字棋落子坐標控制/73
5.5循環嵌套/73
5.5.1循環嵌套的基本應用/73
5.5.2繪制五子棋棋盤/75
5.6控制轉移語句/75
5.7綜合程序舉例——五子棋棋盤坐標及落子/77
5.8小結/80
5.9習題/80
5.10擴展閱讀——博弈樹/82
第6章數組/84
6.1一維數組/84
6.1.1引例/84
6.1.2一維數組的基本操作/85
6.1.3一維數組實現井字棋棋盤數字化/93
6.2二維數組/94
6.2.1二維數組的基本操作/94
6.2.2二維數組實現井字棋人人對弈/98
6.3字符數組/101
6.3.1字符數組的定義和引用/1016.3.2字符數組的輸入/輸出/103
6.3.3常用字符串處理函數/105
6.4綜合程序舉例——五子棋人人對弈程序/110
6.5小結/116
6.6習題/116
6.7擴展閱讀——機器博弈中的蒙特卡洛方法/117
第7章函數/119
7.1概述/119
7.1.1基本概念與引例/119
7.1.2井字棋博弈程序的函數/122
7.2函數的定義/123
7.2.1函數定義的基本格式/124
7.2.2函數的參數/124
7.2.3return語句/128
7.2.4函數原型的聲明/129
7.2.5實現博弈程序的一般過程和方法/130
7.3函數的調用/132
7.3.1函數調用的形式/132
7.3.2函數調用的過程/133
7.4遞歸函數的設計與調用/134
7.4.1簡單遞歸函數的設計與調用/134
7.4.2井字棋博弈程序中的遞歸函數/136
7.5變量的作用域和生存期/137
7.5.1變量的作用域/138
7.5.2變量的生存期/139
7.5.3井字棋博弈程序中的全局變量/140
7.6綜合程序舉例/142
7.7小結/149
7.8習題/149
7.9擴展閱讀——Minimax算法原理及其實現/150
第8章預處理與位運算/152
8.1預處理命令/152
8.1.1機器博弈中常量值的處理/152
8.1.2文件包含——機器博弈中多文件操作/156
8.1.3條件編譯——防止機器博弈中重復包含/159
8.2位運算/161
8.3機器博弈中的Zobrist哈希技術/166
8.4小結/168
8.5習題/168
8.6擴展閱讀——AlphaBeta剪枝/169
第9章指針/171
9.1指針的基本概念/171
9.1.1指針在博弈程序中的作用/171
9.1.2變量的地址/172
9.1.3指針變量的概念/174
9.2指針變量的定義與引用/174
9.2.1指針變量的定義與賦值/174
9.2.2指針變量的引用/176
9.2.3指針變量作為函數參數/177
9.3指針與數組/178
9.3.1通過指針訪問數組元素/178
9.3.2指針變量所支持的運算/179
9.3.3數組名作函數參數/180
9.3.4指向數組的指針/182
9.4指針與字符串/184
9.5指向函數的指針/186
9.6指針型函數/187
9.7指針數組和多級指針/188
9.7.1指針數組的概念/188
9.7.2多級指針/190
9.7.3main函數的參數/190
9.8指針在博弈程序中的應用/191
9.8.1用命令行參數設置博弈程序的先後手/192
9.8.2構建大小可變的棋盤/193
9.9綜合程序舉例/194
9.10小結/198
9.11習題/199
9.12擴展閱讀——遺傳算法/201
第10章結構體和鏈表/203
10.1結構體的基本操作——記錄競賽相關信息/203
10.1.1記錄五子棋棋譜數據/203
10.1.2結構體的聲明和定義/204
10.1.3結構體的初始化和引用/207
10.1.4類型定義符typedef/211
10.2結構體指針——記錄競賽得分信息/211
10.2.1指向結構體變量的指針/211
10.2.2指向結構體數組的指針/213
10.3單向鏈表——記錄賽隊成績/213
10.3.1概念/214
10.3.2動態存儲分配/216
10.3.3鏈表的基本操作/218
10.4綜合程序舉例——比賽積分數據維護/225
10.5小結/227
10.6習題/227
10.7擴展閱讀——人工神經網絡/228
第11章文件/230
11.1文件的概述/230
11.2文件的打開和關閉/232
11.2.1文件指針/232
11.2.2打開或關閉文件——棋譜文件的打開或關閉/233
11.3文件的讀寫函數/236
11.3.1字符讀寫函數——存取五子棋棋盤/236
11.3.2字符串讀寫函數——讀取名言警句/240
11.3.3格式化讀寫函數——保存落子信息/241
11.3.4塊讀寫函數——保存賽隊信息/244
11.4文件的定位函數/245
11.5綜合程序舉例——五子棋棋譜的讀寫/246
11.6小結/250
11.7習題/250
11.8擴展閱讀——機器學習/251
第12章淺談面向對象/253
12.1面向對象概念/253
12.2面向對象設計/254
12.2.1類的基本概念/254
12.2.2類的實例化/256
12.3Windows窗體設計/258
12.4綜合程序舉例/265
12.5小結/268
12.6習題/269
12.7擴展閱讀——深度學習/269
第13章項目實戰/271
13.1猜數游戲挑戰賽/271
13.1.1功能與要求/271
13.1.2程序的構成/271
13.1.3程序運行截圖/272
13.2簡易五子棋/273
13.2.1關鍵數據結構設計/273
13.2.2系統設計/274
13.2.3函數功能及說明/280
13.2.4數據結構和搜索算法的優化/281
13.3綜合程序舉例——五子棋的棋盤設計(C#)/283
13.4小結/291
13.5擴展閱讀——AlphaGo/292
附錄AC語言運算符優先級和結合性表/295
參考文獻/297