本書是編程的入門書,目的在于教會(huì)讀者編程的基本思路和方法。書中使用專門的工具Sunaba,向讀者展示如何從零開始一步步做出一個(gè)完整的程序。本書講解詳細(xì)、連貫,并采用了大量能與現(xiàn)實(shí)生活相結(jié)合的例子。特別是在對(duì)編程思路的介紹上,作者不惜筆墨,進(jìn)行了詳細(xì)的說明。
本書適合初次接觸編程的人閱讀,也適合有一定編程經(jīng)驗(yàn)的人查漏補(bǔ)缺。
第1章 編寫程序之前 1
1.1 想要做出“那個(gè)游戲”應(yīng)該怎么辦 2
1.1.1 做那個(gè)游戲時(shí)需要什么編程技術(shù) 2
1.1.2 那個(gè)游戲到底是什么 3
1.1.3 程序是什么 8
1.1.4 這個(gè)奇妙的文章到底是什么 9
1.1.5 你的目標(biāo)有多高 10
1.2 從哪兒開始著手 14
1.2.1 編程語(yǔ)言的學(xué)習(xí)方法 15
1.2.2 從哪里開始編程 15
1.2.3 找出易于著手的要素 16
1.3 本章想傳達(dá)的內(nèi)容 16
第2章 接觸存儲(chǔ)區(qū)~繪制方塊~ 17
2.1 運(yùn)行寫下的程序 17
2.2 繪制方塊 21
2.2.1 繪制方塊的最基本規(guī)則 21
2.2.2 這一行代碼究竟是什么意思 22
2.2.3 存儲(chǔ)區(qū)是什么 24
2.2.4 操縱存儲(chǔ)區(qū)后為什么會(huì)出現(xiàn)白點(diǎn) 27
2.2.5 計(jì)算機(jī)是怎樣的設(shè)備 27
2.2.6 畫面中的點(diǎn)和幾號(hào)存儲(chǔ)區(qū)相關(guān)聯(lián) 29
2.2.7 存儲(chǔ)區(qū)中保存的數(shù)值與顏色的關(guān)系 33
2.3 在指定位置繪制方塊 35
2.3.1 在畫面正中央畫紅色方塊 35
2.3.2 加1減1真是麻煩 39
2.3.3 為何從0開始 41
2.3.4 這樣就可以繪制那個(gè)游戲的畫面了嗎 45
2.4 本章想傳達(dá)的內(nèi)容 46
第3章 循環(huán)~讓程序變短~ 49
3.1 減少行數(shù) 50
3.1.1 在1行中操縱多個(gè)存儲(chǔ)區(qū) 51
3.1.2 為什么是循環(huán) 52
3.2 循環(huán)的使用方法 53
3.2.1 循環(huán)的語(yǔ)法 53
3.2.2 什么可以用于繪制方塊 54
3.2.3 不固定數(shù)字 55
3.2.4 運(yùn)行1次后就結(jié)束 57
3.2.5 運(yùn)行2次后就結(jié)束 58
3.2.6 想讓程序運(yùn)行16次后結(jié)束應(yīng)該怎么做 61
3.2.7 循環(huán)任意次數(shù)的方法 62
3.2.8 怎么實(shí)現(xiàn)每次循環(huán)時(shí)對(duì)不同像素進(jìn)行涂色 62
3.3 使用循環(huán)繪制方塊 66
3.3.1 然而事情并沒有那么簡(jiǎn)單 67
3.3.2 怎么對(duì)循環(huán)使用循環(huán) 69
3.3.3 這個(gè)程序的問題在哪里 71
3.3.4 在腦中運(yùn)行 72
3.3.5 從結(jié)果出發(fā)進(jìn)行思考 74
3.3.6 程序不按預(yù)期運(yùn)行時(shí)應(yīng)該怎么辦 79
3.3.7 使用循環(huán)的價(jià)值在哪里 80
3.3.8 要在畫面中央繪制方塊該怎么辦 81
3.4 本章想傳達(dá)的內(nèi)容 83
第4章 程序的變形~繪制大量的方塊~ 85
4.1 使用循環(huán)繪制墻壁 86
4.1.1 循環(huán)繪制方塊 86
4.1.2 繪制20個(gè) 88
4.1.3 照此繪制出右側(cè)和下方的墻壁 91
4.1.4 注釋 95
4.2 還想繼續(xù)縮短 97
4.2.1 將循環(huán)合并 98
4.2.2 已經(jīng)到頭了嗎 102
4.2.3 能不能把底部也合并進(jìn)來 103
4.2.4 這就是容易理解的程序嗎 108
4.3 本章想傳達(dá)的內(nèi)容 109
第5章 將程序分離~更輕松地繪制大量的方塊~ 111
5.1 除循環(huán)以外,能重復(fù)使用同一行的方法 112
5.1.1 使用引用會(huì)怎么樣 112
5.1.2 引用的易理解性 115
5.2 Sunaba中的“引用” 117
5.2.1 關(guān)于運(yùn)行 119
5.2.2 如何有效利用局部程序 120
5.2.3 每次引用時(shí)對(duì)不同的點(diǎn)進(jìn)行涂色 120
5.3 使用局部程序繪制墻壁和底部 121
5.3.1 使用局部程序繪制左右兩側(cè)的墻壁 123
5.3.2 局部程序的價(jià)值在哪里 128
5.4 改得更易懂些 130
5.4.1 注釋的必要性 131
5.4.2 注意“特殊的數(shù)字” 132
5.5 本章想傳達(dá)的內(nèi)容 138
第6章 會(huì)動(dòng)的程序~讓方塊下落~ 141
6.1 接下來該做什么 142
6.2 使方塊下落 143
6.2.1 試著讓點(diǎn)下落 144
6.2.2 讓方塊下落 146
6.2.3 修正錯(cuò)誤 150
6.2.4 修正問題 155
6.3 繪制得更快 158
6.3.1 如何關(guān)閉調(diào)控功能 159
6.3.2 調(diào)控是什么 160
6.3.3 寄信 162
6.4 將目前的成果組合在一起 164
6.4.1 首先是簡(jiǎn)單地拼在一起 164
6.4.2 繪制墻壁和底部 167
6.4.3 關(guān)閉調(diào)控 168
6.4.4 將下落的方塊移到中間 169
6.5 本章想傳達(dá)的內(nèi)容 170
第7章 為存儲(chǔ)區(qū)起名~更多中文~ 173
7.1 現(xiàn)在的程序有什么問題 174
7.1.1 需要什么樣的工具 176
7.1.2 不用自己編號(hào) 178
7.2 在Sunaba中為存儲(chǔ)區(qū)取名 181
7.2.1 先試用一下 182
7.2.2 不需要考慮存儲(chǔ)區(qū)編號(hào) 183
7.3 命名存儲(chǔ)區(qū)的規(guī)則 185
7.3.1 什么時(shí)候生成的命名存儲(chǔ)區(qū) 185
7.3.2 命名存儲(chǔ)區(qū)只作用于其所在的局部程序 186
7.3.3 從循環(huán)的外部無法看到 189
7.4 本章想傳達(dá)的內(nèi)容 190
第8章 可以操作的程序~操作方塊~ 191
8.1 操作是怎么一回事 192
8.1.1 對(duì)鍵盤做出響應(yīng) 192
8.1.2 程序是這樣了解到外部的內(nèi)容的 193
8.2 實(shí)現(xiàn)可以操作 196
8.2.1 來不及按按鍵,就算按下也看不出來 196
8.2.2 在程序運(yùn)行中按下按鍵 198
8.2.3 移動(dòng)點(diǎn) 200
8.2.4 關(guān)閉調(diào)控 201
8.2.5 向其他方向移動(dòng) 201
8.2.6 移動(dòng)方塊 203
8.3 避免過快地移動(dòng) 205
8.3.1 先從小處著眼 205
8.3.2 “不能持續(xù)移動(dòng)”代表什么意思 206
8.3.3 怎么知道“上次沒有按下” 207
8.3.4 查看完白板后決定做什么 209
8.3.5 想到式子 211
8.3.6 上下左右移動(dòng) 214
8.3.7 回到方塊 216
8.4 移動(dòng)下落中的方塊 217
8.4.1 繪制兩壁和底部,完成現(xiàn)在可以進(jìn)行的改造 218
8.4.2 使方塊下落 220
8.5 本章想傳達(dá)的內(nèi)容 220
第9章 “計(jì)算”本來的意思~緩慢下落~ 223
9.1 什么是緩慢下落 224
9.1.1 不會(huì)每次都發(fā)生移動(dòng)的程序 225
9.1.2 之前移動(dòng)了的話這次不移動(dòng) 226
9.1.3 使用除法 228
9.1.4 另一個(gè)方法 230
9.2 有條件運(yùn)行 231
9.2.1 有選擇地運(yùn)行某一行 231
9.2.2 僅循環(huán)1次就停止 233
9.2.3 有條件運(yùn)行是否有用 235
9.3 Sunaba中的有條件運(yùn)行 237
9.3.1 之前的例子會(huì)變成什么樣 237
9.3.2 緩慢畫線 238
9.3.3 將目前的成果組合起來 240
9.3.4 整理針對(duì)持續(xù)按下的對(duì)策 242
9.4 計(jì)算的本質(zhì) 245
9.4.1 什么是條件表達(dá)式成立 245
9.4.2 “<”到底是什么? 247
9.4.3 Sunaba的計(jì)算符號(hào) 248
9.4.4 那么使用一下 249
9.4.5 嘗試使用 251
9.5 本章想傳達(dá)的內(nèi)容 254
第10章 批量使用存儲(chǔ)區(qū)~堆積方塊~ 257
10.1 碰撞是什么意思 258
10.1.1 碰撞到底部是什么意思 258
10.1.2 試著碰撞墻壁 263
10.1.3 思考接下來會(huì)發(fā)生的事情 266
10.2 批量使用存儲(chǔ)區(qū) 267
10.2.1 將問題轉(zhuǎn)換 268
10.2.2 按照堆積順序記憶 269
10.2.3 記住所有格子的狀態(tài) 272
10.2.4 比較兩種方法 275
10.3 堆積 277
10.3.1 整理一下具體做法 277
10.3.2 出發(fā)點(diǎn) 278
10.3.3 碰撞到底部后,就堆積到那里 279
10.3.4 讓新的方塊出現(xiàn) 280
10.3.5 在底部以外也堆積起來 283
10.3.6 想要改得更短 286
10.3.7 重新引入墻壁和左右移動(dòng)的內(nèi)容 289
10.3.8 對(duì)程序進(jìn)行整理 292
10.3.9 “使之堆積”的局部程序 295
10.3.10 下落速度和長(zhǎng)按時(shí)的對(duì)策 297
10.4 本章想傳達(dá)的內(nèi)容 300
第11章 為存儲(chǔ)區(qū)起名進(jìn)階版~消除橫行~ 303
11.1 首先單單考慮消除 304
11.1.1 大致順序 304
11.1.2 消除程序 305
11.1.3 進(jìn)行組合 310
11.1.4 更輕松地進(jìn)行確認(rèn) 312
11.1.5 確認(rèn)是否無法下落 314
11.2 對(duì)程序加以改良 315
11.2.1 指定編號(hào)的存儲(chǔ)區(qū)不能起名 315
11.2.2 在局部程序中使用局部程序時(shí) 318
11.2.3 為局部程序傳遞信息的新方法 320
11.2.4 使用“輸入” 323
11.2.5 引入“輸入”后問題是否得以解決 325
11.2.6 在整個(gè)程序中使用輸入 327
11.3 落下 330
11.3.1 最簡(jiǎn)單的例子 330
11.3.2 寫成程序 332
11.3.3 上方堆積有大量方塊時(shí)的情況 335
11.3.4 讓上方堆積著的方塊全部下落 337
11.3.5 另一種做法 340
11.3.6 哪一個(gè)更好些 342
11.4 本章想傳達(dá)的內(nèi)容 343
第12章 將所有內(nèi)容組合起來~旋轉(zhuǎn)方塊~ 345
12.1 增加為2個(gè) 347
12.1.1 降落中的方塊是怎樣表示出來的呢 347
12.1.2 繪制出2個(gè)紅色方塊的單純方法 348
12.2 旋轉(zhuǎn)是怎么回事 352
12.2.1 忘掉旋轉(zhuǎn)以外的內(nèi)容 352
12.2.2 從結(jié)果開始思考 354
12.2.3 旋轉(zhuǎn)共分4種 356
12.2.4 更聰明的寫法 359
12.3 添加旋轉(zhuǎn)之前 362
12.3.1 回想起2個(gè)方塊并排排列的程序 362
12.3.2 將程序整理得小一些 364
12.3.3 重新考慮查看能否正常運(yùn)行的方法 367
12.3.4 其他做法 369
12.3.5 停止保存2個(gè)格子的位置 375
12.3.6 充分利用局部程序 377
12.3.7 局部程序的輸出 379
12.3.8 已經(jīng)整理得差不多了吧 380
12.4 添加旋轉(zhuǎn)功能 382
12.4.1 添加旋轉(zhuǎn)后會(huì)發(fā)生的變化 382
12.4.2 大致寫出來 384
12.4.3 追加輸入的局部程序 386
12.4.4 計(jì)算格子的位置 388
12.4.5 真正進(jìn)行旋轉(zhuǎn) 389
12.5 可以正常運(yùn)行嗎 392
12.5.1 果然有問題 392
12.5.2 應(yīng)該是怎樣的問題 394
12.5.3 修正 395
12.6 本章想傳達(dá)的內(nèi)容 400
第13章 “表格”這個(gè)思考方式~完成游戲~ 403
13.1 3個(gè)3個(gè)下落 403
13.1.1 在程序中,2和3的不同之處 404
13.1.2 3個(gè)格子的連接方式并非只有1種 406
13.1.3 編寫程序 408
13.1.4 繪制出2種形狀 409
13.1.5 加入旋轉(zhuǎn) 413
13.1.6 “表格”這個(gè)思考方式 415
13.1.7 事先做出表格 420
13.2 4個(gè)4個(gè)下落 422
13.2.1 3格與4格有什么不同 422
13.2.2 變成4格后會(huì)有多少種類 425
13.2.3 確定基準(zhǔn)格子和旋轉(zhuǎn)前的形狀 427
13.2.4 編寫程序 428
13.2.5 到此為止合適嗎 431
13.2.6 為了省事 432
13.2.7 那個(gè)表格中記錄著怎樣的內(nèi)容 433
13.2.8 縮減有關(guān)旋轉(zhuǎn)的表格 434
13.2.9 進(jìn)一步縮減有關(guān)旋轉(zhuǎn)的表格 438
13.3 本章想傳達(dá)的內(nèi)容 445
第14章 走出沙地~一個(gè)開端的結(jié)束~ 447
14.1 目前為止使用過的思考方式 447
14.1.1 從結(jié)果出發(fā)進(jìn)行思考 448
14.1.2 提問的方法 448
14.1.3 目標(biāo)和手段 450
14.1.4 準(zhǔn)備多個(gè)選項(xiàng) 451
14.1.5 總結(jié) 452
14.2 為了更進(jìn)一步 452
14.2.1 再多玩一會(huì)兒Sunaba 453
14.2.2 轉(zhuǎn)向?qū)嵱谜Z(yǔ)言 454
14.3 實(shí)用語(yǔ)言的難點(diǎn) 455
14.3.1 想要進(jìn)入能夠使用的狀態(tài)很麻煩 455
14.3.2 運(yùn)行的工序 455
14.3.3 語(yǔ)法復(fù)雜 456
14.3.4 要繪制圖形或發(fā)出聲音并不容易 456
14.3.5 面向?qū)ο蟪绦蛟O(shè)計(jì) 457
14.3.6 需要英語(yǔ)能力 458
14.3.7 看不到存儲(chǔ)區(qū) 459
14.3.8 推薦JavaScript 460
結(jié)語(yǔ) 463