冒険で学ぶ はじめてのプログラミング

[表紙]冒険で学ぶ はじめてのプログラミング

紙版発売
電子版発売

A5判/184ページ

定価1,958円(本体1,780円+税10%)

ISBN 978-4-7741-9918-4

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

早稲田大学の中高生向け情報科学教室の人気プログラミング講座がついに書籍化!
アイテムを集めたり,モンスターと戦ったり,炎の洞窟を探検したり……。C++を使って,主人公が冒険する世界をプログラミングで作りながら,楽しくプログラミングの基本を学ぶことができます。
プログラミングをはじめてみたいと思っている小中高生のみなさんはもちろん,プログラミングやC++初心者という方におすすめの一冊です。
※開発環境として,書籍内でVisual Studio 2017,Xcode,Webサイトの3通りの方法を解説しており,あらゆるPC・タブレットに対応しています

こんな方におすすめ

  • プログラミングに興味を持っている中学生,高校生
  • C++を学びたいと思っている方

著者の一言

遊ぶだけではつまらないあなたへ

ソフトウェア

あなたが使っているコンピューターやスマートフォンには,友達との情報交換や写真の共有に便利なアプリや,ついつい夜遅くまでプレイしてしまうゲームがいくつも入っていることでしょう。このような,デジタル機器で操作したり遊んだりできるもののことを「ソフトウェア」といいます(※1)。どんなに値段が高くて高性能なコンピューターやスマートフォンでも,ソフトウェアがなければ私たちは何もすることができません。ソフトウェアはデジタル機器に命を吹き込む魔法なのです。
ソフトウェアは私たちの目に見えないところでも活躍しています。テレビや映画できれいな映像を表示する技術や,自動車が安全に効率よく運転できるための制御,難病を直すための新しい薬の成分の発見,地球から遠く離れた星で生命の痕跡を探索するロボットの操縦など,ありとあらゆる分野でソフトウェアが使われています。21世紀の世界で,私たちの生活をより良くしたり,科学を前進させたりするために,ソフトウェアの技術はもはや欠かせないものになっています。

プログラミング

ソフトウェアはだれでも作れるものなのでしょうか。答えは「Yes」です。ソフトウェアを作ることは,料理のレシピを書くことと似ています。つまり,コンピューターやスマートフォンやロボットに,何を使って,どういう手順で,どういう作業をしてほしいかを伝えることが,ソフトウェア開発の基本的な考え方です。ソフトウェアの世界では,このレシピのことを「プログラム」といい,レシピを書くことを「プログラミング」といいます。ソフトウェアを作れるようになるためには,プログラミングの方法を学ぶ必要があります。

プログラミング言語

プログラミングをするときは,ふだん私たちが話をするときとは違った言語を使います。ためしに,この本の真ん中あたりのページをめくってみましょう。英語の単語と記号と数字がならんでいます。これがプログラミングをするときに使う「プログラミング言語」です。人間はふだんの会話で聞き間違いをしたり,頼まれた仕事を忘れてしまったりすることがありますが,コンピューターは正確なプログラミング言語で書かれたプログラムであれば,いつでも正しく理解し,仕事をさぼったり忘れたりすることはありません。プログラミング言語を使ってコンピューターと対話をすることで,あなたの思いどおりの仕事や作業を,優秀な助手であるコンピューターに手伝ってもらうことができるのです。

C++

私たちの世界にさまざまな言語があるように,ソフトウェアの世界にも数多くのプログラミング言語があります。例えば,昔は今よりもずっと小さな容量と性能のコンピューターに適した言語が使われていました。最近ではインターネット上のサービスを作るのが得意な言語や,同時にたくさんの計算装置を制御する並列処理性能に力を入れた言語,小学生でも学べるように絵やブロックでプログラムが作れる言語など,目的や使用者,コンピューターの性能,開発方法論の発展と拡大に応じてさまざまなプログラミング言語が考案されてきました。
この本で扱うのは「C++(シー・プラス・プラス)」というプログラミング言語です。C++を発明したのはデンマーク生まれのコンピューター科学者,Bjarne Stroustrup(ビャーネ・ストラウストラップ)博士で,彼は1983年に最初のC++を発表しました。その後多くの専門家によってC++は進化や改良が重ねられ,現在でも新しい機能が活発に議論,実装されています。

C++の特徴

C++はコンピュータの性能を最大限に引き出す大規模なソフトウェアの開発が得意で,世界中のコンピューターやスマートフォン,ゲーム機や家電,工場や研究所で動くソフトウェアの開発に使われている本格的なプログラミング言語の1つです。世界のプログラミング言語の人気ランキングでも長年上位にランクインしています(※2)。私たちがよく耳にするWindowsやGoogle Chrome,PhotoshopやゲームエンジンUnityなどの有名なソフトウェアも大部分がC++のプログラムで作られています。最近登場している新しいプログラミング言語も,C++と構造が似ていたり,一部の文法が共通していたりするものが多くあります。C++の基本を知ることは,あなたの将来の学習や仕事に必ず役に立つでしょう。

この本のねらい

この本は,世界の未来を切り開いていくあなたに,新しいソフトウェアを作り出す技術を授けます。プログラミングをまったく知らなかった方でも,読みはじめると,家族や友達に遊んでもらえるようなソフトウェアを作れるようになります。そして,自分の作ったソフトウェアが,まわりの人たちに「面白い!」「便利だ!」と言ってもらえるうれしさを味わうことでしょう。やがて,ソフトウェアを使ったり遊んだりすることよりも,作ることのほうが断然おもしろいと思うようになるかもしれません(筆者もその一人です)。

冒険づくりの冒険へ

あなたがこの本で取り組むのは,12歳の少年プラスが冒険する世界に,謎解きや戦略,困難やよろこびをプログラミングで用意することです。いじわるなダンジョンを作ることもできます。絶対に勝てないような勝負に挑ませることもできます。それでも主人公のプラスはくじけずに挑戦してくれます。ページをめくるたび,プラスと一緒にあなた自身もレベルアップする。そんな「冒険づくり」の冒険が始まります!

この書籍に関連する記事があります!

プログラミングという剣を手に,冒険づくりの旅に出よう!
IoT(Internet of Things),ビッグデータ,AI(人工知能),ロボットなどの「第4次産業革命」によって,今後ますます,暮らしのなかにコンピュータがとけこんでいくと考えられます。

目次

プロローグ 小さな村の大騒動~東の辺境 トレモロ村~

初めてのC++プログラムを動かそう

  • C++プログラミングをはじめる準備
  • WindowsでC++プログラミングをはじめる
  • macOSでC++プログラミングをはじめる
  • WebサイトでC++プログラミングをはじめる

第1話 城塞都市への道~アルト平原東部~

主人公の自己紹介画面をデザインしよう

  • Unit 01 セリフを用意する
  • Unit 02 複数のセリフを用意する
  • Unit 03 セリフを表示する準備
  • Unit 04 セリフを表示する
  • Unit 05 セリフを改行する

ステップアップ 自己紹介

  • ダンジョンのうらみち std::endlって必要?

第2話 「冒険者」の認定試験~城塞都市アルト 衛兵第二訓練所~

冒険者の試験を突破しよう

  • Unit 06 セリフを連続させる
  • Unit 07 数を表示する
  • Unit 08 足し算と引き算
  • Unit 09 かけ算と割り算
  • Unit 10 割り算の注意
  • Unit 11 あまりを求める
  • Unit 12 計算の順序
  • Unit 13 コメントの書き方

ステップアップ 冒険者の試験

  • ダンジョンのうらみち-エスケープ文字

第3話 巷で話題の回復薬~城塞都市アルト 冒険アイテム専門店バイエルン~

アイテム屋で商品を買う場面を作ろう

  • Unit 14 数に名前をつける
  • Unit 15 変数の値を途中で変える
  • Unit 16 複数の変数を作る
  • Unit 17 数を入力する

ステップアップ アイテムショップ

  • ダンジョンのうらみち 変数の名前のルール

第4話 城下町で情報収集~城塞都市アルト 大衆酒場アルトハンザ~

主人公が町の人と会話をする場面を作ろう

  • Unit 18 数を比べる
  • Unit 19 条件を書く
  • Unit 20 条件に応じて違うことをする
  • Unit 21 さらに条件を追加する
  • Unit 22 数が同じか違うかを調べる
  • Unit 23 計算結果を調べる
  • Unit 24 文章をあつかう

ステップアップ 城下町の探検

  • ダンジョンのうらみち-空白で入力を区切らないようにするには

第5話 戦闘!モンスター!~アルト平原北部~

主人公がモンスターと戦う場面を作ろう

  • Unit 25 数を増やしたり減らしたりする
  • Unit 26 数をかけたり割ったりする
  • Unit 27 1ずつ変化させる
  • Unit 28 くりかえしと終わり

ステップアップ モンスターとのバトル

  • ダンジョンのうらみち-++と--の前置,後置の違い

第6話 炎の洞窟,危機一髪!~ラーハン火山 坑道跡~

ダンジョンのトラップを攻略しよう

  • Unit 29 決まった回数だけくりかえす
  • Unit 30 いろいろなくりかえし
  • Unit 31 ストップする準備
  • Unit 32 決まった時間だけストップする

ステップアップ 炎の抜け道の攻略アイテム

  • ダンジョンのうらみち-時間リテラル

第7話 ~大海原の大砲ゲーム キーレ湾 ラルゴ岬砲台跡~

大砲ゲームのルールを設計しよう

  • Unit 33 条件を組み合わせる
  • Unit 34 どちらかの条件

ステップアップ 大砲ゲームの商品は?

  • ダンジョンのうらみち-if (0 < i < 10) はダメ

第8話 宿屋の主人は占い師!?~カランド村郊外 民宿アルカナ~

冒険の未来を宿屋の主人に占ってもらおう

  • Unit 35 ランダムな数
  • Unit 36 もっとランダムな数
  • Unit 37 ランダムな数の範囲
  • Unit 38 複数のランダムな数の範囲
  • Unit 39 ランダムな選択肢
  • Unit 40 確率のプログラム

ステップアップ 主人公の運命は?

  • ダンジョンのうらみち-古いrand()の欠点

第9話 大豊作のスイカ畑~カランド村 スイカ畑~

特産品の収穫作業を手伝おう

  • Unit 41 小数をあつかう
  • Unit 42 小数を入力する
  • Unit 43 小数と整数の計算
  • Unit 44 たくさんの数を記録する(int型)
  • Unit 45 すべての値を調べる
  • Unit 46 たくさんの数を記録する(double型)
  • Unit 47 すべての値を調べる(double型)
  • Unit 48 集計する

ステップアップ スイカの集計

  • ダンジョンのうらみち-小数第何桁まで表示するか

第10話 スイカ安いか買わないか~カランド村 中央広場~

市場での買い物の場面を作ろう

  • Unit 49 たくさんの文章を記録する
  • Unit 50 すべての文章を調べる
  • Unit 51 記録を調べる
  • Unit 52 記録の位置を表す型
  • Unit 53 入力から記録を調べる

ステップアップ 名産品の屋台

  • ダンジョンのうらみち-まちがった入力に対応する

第11話 黄金のスイカ奪われる!~カランド村 郊外の森~

村のマップを作ろう

  • Unit 54 文字を表す型
  • Unit 55 リストの中のリスト
  • Unit 56 二重のくりかえし

ステップアップ 村への侵入マップ

  • ダンジョンのうらみち-char型で表現できる文字

第12話 プラスの剣術教室~カランド村 南地区~

村の子ども達に剣術のけいこをつけよう

  • Unit 57 攻撃のかけ声
  • Unit 58 全力パワー
  • Unit 59 敵を知る
  • Unit 60 攻撃をはね返せ
  • Unit 61 逃げるか戦うか
  • Unit 62 明かりをつけろ
  • Unit 63 回復薬が効かない
  • Unit 64 うまく逃げ切れた?
  • Unit 65 くりかえし攻撃
  • Unit 66 占いの準備
  • Unit 67 不吉な占い
  • Unit 68 小さくなったスイカ
  • Unit 69 手紙
  • Unit 70 森へのマップ
  • ダンジョンのうらみち-プログラムのミスを減らすには
  • ステップアップ解答例

著者プロフィール

鈴木遼(すずきりょう)

2016年早稲田大学表現工学専攻修士課程修了。早稲田大学メディアデザイン研究室博士後期課程。IPA未踏事業スーパークリエータ認定。プログラミングを楽しく簡単にするツール「Siv3D」「Enrect」を開発するかたわら,早稲田情報科学ジュニア・アカデミーや未踏ジュニアで,小中高生へのプログラミング指導を行う。