プログラムはこうして作られる プログラマの頭の中をのぞいてみよう

概 要

株式会社セガのゲームプログラマが書いた、プログラムの初心者に入門書を読む前に読んでほしい「プログラムを根本から理解し考え出す能力を身につける」書籍です。世間一般のプログラム入門書は、プログラムを自分で作るにはどのように頭を動かせばいいのかという根本の考え方を教えてくれません。本書は『ゲームプログラマになる前に覚えておきたい技術』の著者が、プログラミングの未経験者や基本をやり直したいと考えている人のために、簡単なゲーム制作をとおして、プログラムを作る上でどのように頭を働かせればいいのかを学べるように工夫しました。サポートページでサンプルダウンロード、本文「Chapter0 この本は誰に何を提供するか」のpdfを公開しています。

著者 平山尚(株式会社セガ)
価格 本体1800円(税別)
ISBN 978-4-7980-3925-1
発売日 2013/9/21
判型 A5
色数 1色
ページ数 496
CD/DVD
対象読者 初級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter 0 この本は誰に何を提供するか→(pdf)

0.1 これまでの教え方が持つ三つの問題

0.1.1 要素がバラバラ

0.1.2 プロ向けの道具がもたらす挫折

0.1.3 できなくても仕方ないと思われている

0.2 この本は何が違うか

0.2.1 一つのプログラムを最初から最後まで作る

0.2.2 専用に道具を用意する

0.2.3 本当に初めての人を対象にする

0.3 では、始めよう!

Chapter 1 プログラム作りを始める前に

1.1 あのゲームを作るためにはどうしたらいいか

1.1.1 あのゲームに必要なプログラム技術とは何か

1.1.2 あのゲームはどんなものか

1.1.3 プログラムとは何なのか

1.1.4 この奇妙な文章は何なのか

1.1.5 君の目標はどのくらいの高さにあるのか

1.2 どこから手をつけるか

1.2.1 プログラミング言語の学び方

1.2.2 どこから作り始めるか

1.2.3 何か手のつけやすい要素を抜き出せないか

1.3 この章で伝えたかったこと

Chapter 2 メモリに触れてみる ~四角を描く~

2.1 書いたプログラムを動かす

2.2 四角を描く

2.2.1 四角を描くための最低限のルール

2.2.2 この一行は何を意味しているのか

2.2.3 メモリとは何か

2.2.4 メモリをいじると点が出るのはなぜか

2.2.5 コンピュータとはどういう機械か

2.2.6 画面の点は何番のメモリにつながっているか

2.2.7 メモリに覚えさせる数と色の関係

2.3 好きな場所に四角を描く

2.3.1 画面の真ん中に赤い四角を描く

2.3.2 1足したり引いたりが面倒だ!

2.3.3 なぜ0始まりか

2.3.4 これであのゲームの絵を描けるか

2.4 この章で伝えたかったこと

Chapter 3 くり返し ~プログラムを短くする~

3.1 行数を減らす

3.1.1 一行で複数のメモリをいじりたい

3.1.2 なぜくり返しか

3.2 くり返しの使い方

3.2.1 くり返しの文法

3.2.2 何があれば四角を描くのに使えるか

3.2.3 固定していない数

3.2.4 1回実行して終わりにする

3.2.5 2回実行して終わりにする

3.2.6 16回実行して終わりにするにはどうするか

3.2.7 好きな回数くり返す方法

3.2.8 くり返す度に別の画素を塗るにはどうするか

3.3 くり返しで四角を描く

3.3.1 だがそう簡単には行かない

3.3.2 くり返しをくり返すにはどうするか

3.3.3 このプログラムの何が悪いのか

3.3.4 頭の中で動かす

3.3.5 結果から考える

3.3.6 思ったように動かない時にすべきこと

3.3.7 くり返しで書くことに価値はあるか

3.3.8 画面の真ん中に描くにはどうするか

3.4 この章で伝えたかったこと

Chapter 4 プログラムの変形 ~四角をたくさん描く~

4.1 くり返しで壁を描く

4.1.1 四角を描くことをくり返す

4.1.2 20個描く

4.1.3 この調子で右の壁や底も描く

4.1.4 注釈

4.2 もっと短くしたい

4.2.1 くり返しをくっつける

4.2.2 まだやれることはないか

4.2.3 底も含めてもっと短く書く方法はないか

4.2.4 これはわかりやすいプログラムか

4.3 この章で伝えたかったこと

Chapter 5 プログラムを分ける ~四角を楽にたくさん描く~

5.1 行を使い回すための、くり返し以外の手段

5.1.1 参照が使えたとしたらどうなるか

5.1.2 参照のわかりやすさ

5.2 Sunabaにおける「参照」

5.2.1 実行について

5.2.2 部分プログラムが役立つために必要なもの

5.2.3 参照する度に違う点を塗りたい

5.3 部分プログラムを使って壁と底を描く

5.3.1 左右も部分プログラムを使って描くには

5.3.2 部分プログラムに価値はあるか

5.4 もっとわかりやすく

5.4.1 注釈はなぜ必要か

5.4.2 「変な数」に注目する

5.5 この章で伝えたかったこと

Chapter 6 動きのあるプログラム ~四角を落とす~

6.1 次は何をすべきか

6.2 四角を落とす

6.2.1 点を落としてみる

6.2.2 四角を落としてみる

6.2.3 間違いを直す

6.2.4 問題を直す

6.3 もっと速く塗りたい

6.3.1 手加減をやめさせるには

6.3.2 手加減とは何か

6.3.3 手紙を送る

6.4 ここまでを組み合わせる

6.4.1 まずはくっつけるだけ

6.4.2 壁と底を描く

6.4.3 手加減をやめる

6.4.4 落ちる四角を真ん中に

6.5 この章で伝えたかったこと

Chapter 7 メモリに名前をつける ~もっと日本語で~

7.1 今のプログラムは何が悪いか?

7.1.1 どんな道具がほしいか

7.1.2 番号を自分で決めたくない

7.2 Sunabaでメモリに名前をつける

7.2.1 とりあえず使ってみる

7.2.2 メモリの番号を決めなくていい、ということ

7.3 名前付きメモリのルール

7.3.1 名前付きメモリが作られるのはいつか

7.3.2 名前付きメモリは部分プログラムごと

7.3.3 くり返しの外からは見えない

7.4 この章で伝えたかったこと

Chapter 8 操作できるプログラム ~四角を動かす~

8.1 操作するとはどういうことか

8.1.1 キーボードに反応する

8.1.2 プログラムはどうやって外のことを知るか

8.2 操作できるようにする

8.2.1 押す暇がないし、押せてもわからない

8.2.2 動いている間にキーを押したい

8.2.3 点を動かしてみる

8.2.4 手加減をオフに

8.2.5 下以外にも動くように

8.2.6 四角を動かす

8.3 動きっぱなしを避ける

8.3.1 まずは小さく始める

8.3.2 動き続けないとはどういうことか

8.3.3 前回押されていなければ、をどうするか

8.3.4 ホワイトボードを見てどうするか決める

8.3.5 式を思いつく

8.3.6 上下左右に動けるようにする

8.3.7 四角に戻そう

8.4 落ちてくる四角を動かせるようにする

8.4.1 壁と底を描いて、すぐできる改造をする

8.4.2 落とす

8.5 この章で伝えたかったこと

Chapter 9 「計算」の本当の意味 ~ゆっくり落とす~

9.1 ゆっくり落とすということ

9.1.1 毎回動かないプログラム

9.1.2 前動いたら今回動かない

9.1.3 割り算を使う

9.1.4 もう一つの方法

9.2 条件実行

9.2.1 行を実行したりしなかったりする

9.2.2 くり返しを1回で止める

9.2.3 条件実行はおいしいか?

9.3 Sunabaで条件実行

9.3.1 前の例はどうなるか

9.3.2 ゆっくり線を引く

9.3.3 ここまでを組み合わせる

9.3.4 押しっぱなしへの対処を整理する

9.4 計算の本当の意味

9.4.1 条件式が正しいということ

9.4.2 <は一体何なのか

9.4.3 Sunabaの計算記号

9.4.4 では使ってみよう

9.4.5 使ってみよう

9.5 この章で伝えたかったこと

Chapter 10 メモリをまとめて使う ~四角を積み上げる~

10.1 当たるということ

10.1.1 底に当たるとはどういうことか

10.1.2 壁にも当ててみる

10.1.3 次に起こることを考える

10.2 メモリをかたまりで使う

10.2.1 問題を変形する

10.2.2 積もった順に覚えていく

10.2.3 全てのマス目がどうなっているか覚える

10.2.4 二つの方法を比べてみよう

10.3 積み上げる

10.3.1 どんなふうにやるかを整理する

10.3.2 出発点

10.3.3 床に当たったら、そこに積もらせる

10.3.4 新しい四角を出す

10.3.5 底以外にも積もらせる

10.3.6 短くしたい

10.3.7 壁と左右移動を復活させる

10.3.8 プログラムを整理する

10.3.9 積もらせる部分プログラム

10.3.10 落ちる速さと押しっぱなし対応

10.4 この章で伝えたかったこと

Chapter 11 もっとメモリに名前をつける ~列を消す~

11.1 とりあえず消すだけ

11.1.1 おおまかな手順

11.1.2 消すプログラム

11.1.3 組み合わせる

11.1.4 楽に確認したい

11.1.5 落ちないことを確認しておく

11.2 プログラムを良くする

11.2.1 番号指定のメモリに名前がつけられない

11.2.2 部分プログラムから部分プログラムを使う時

11.2.3 部分プログラムに情報を伝える新しい方法

11.2.4 入力を使ってみる

11.2.5 入力で問題は解決するのか

11.2.6 全体を入力を使うように直す

11.3 落とす

11.3.1 一番簡単な例

11.3.2 プログラムにする

11.3.3 上にたくさん乗っているとどうなるか

11.3.4 上に乗るもの全部を落とす

11.3.5 もう一つのやり方

11.3.6 どちらがいいか

11.4 この章で伝えたかったこと

Chapter 12 全てを組み合わせる ~四角を回す~

12.1 2つに増やす

12.1.1 落ちてくる四角は今どう表現されているか

12.1.2 2個赤い四角を出す単純な方法

12.2 回すとはどういうことか

12.2.1 回転以外の要素を一旦忘れる

12.2.2 結果から考える

12.2.3 回転には4通りある

12.2.4 もっと賢く書く

12.3 回転を組み込む前に

12.3.1 2つ並べるプログラムを思い出す

12.3.2 小さくまとめていく

12.3.3 動かせるかを調べる方法を考え直す

12.3.4 別のやり方

12.3.5 2マス分の位置を覚えるのをやめる

12.3.6 もっと部分プログラムを活用したい

12.3.7 部分プログラムの出力

12.3.8 整理はもう十分だろう

12.4 回転を組み込む

12.4.1 回転が入ってくると変わること

12.4.2 おおまかに書いてみる

12.4.3 入力を追加する部分プログラム

12.4.4 マス目の場所を計算する

12.4.5 本当に回す

12.5 ちゃんと動くのか?

12.5.1 おかしい

12.5.2 どのようにおかしいはずか

12.5.3 直す

12.6 この章で伝えたかったこと

Chapter 13 「表」という考え方 ~ゲームの完成~

13.1 3マスづつ落とす

13.1.1 2と3のプログラム上の違い

13.1.2 3マスつなげる方法は1つではない

13.1.3 プログラムにする

13.1.4 2種類の形が出るようにする

13.1.5 回転も入れる

13.1.6 表という考え方

13.1.7 表を前もって作っておく

13.2 4マスづつ落とす

13.2.1 3マスと4マスで何が違うか

13.2.2 4マスになると種類はどれだけあるか

13.2.3 代表のマスと、回す前の形を決める

13.2.4 プログラムにしてみよう

13.2.5 本当にこれでいいのか?

13.2.6 手間を省くために

13.2.7 あの表には何が書いてあるのか?

13.2.8 回転に関する表を減らす

13.2.9 回転に関する表をもっと減らす

13.3 この章で伝えたかったこと

Chapter 14 砂場を出よう ~始まりの終わり~

14.1 ここまで使ってきた考え方

14.1.1 結果から考える

14.1.2 問いかけ方

14.1.3 目標と手段

14.1.4 複数の選択肢を用意しろ

14.1.5 まとめよう

14.2 さらに進むために

14.2.1 もうちょっとSunabaで遊んでみる

14.2.2 実用言語に移る

14.3 実用言語の大変なところ

14.3.1 使えるようにするのが大変

14.3.2 動かすための手順

14.3.3 文法が複雑

14.3.4 絵や音を出すのが大変

14.3.5 オブジェクト指向プログラミング

14.3.6 英語っぽい必要がある

14.3.7 メモリが見えない

14.3.8 おすすめはJavaScript

PR

秀和システム