Python版 つくって学ぶProcessingプログラミング入門

Python版 つくって学ぶProcessingプログラミング入門

実行結果をビジュアルに確認できるProcessingを使い,問題解決能力を養う書。

ジャンル
発行年月日
2020/01/10
判型
B5
ページ数
176ページ
ISBN
978-4-339-02901-7
Python版 つくって学ぶProcessingプログラミング入門
在庫あり
2営業日以内に出荷致します。

定価

2,640(本体2,400円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • レビュー
  • 著者紹介
  • 広告掲載情報

【読者対象】
大学初年度程度の知識と,ゲームやグラフィクス,人工知能に関連するプログラミングに興味を持つ初めてプログラミングに取り組む学生.

【書籍の特徴】
本書は,「物事を論理的に考えて課題を解決する練習」をプログラミングの学習を通して実践するためのもので,Python言語をベースとしたProcessingを使用します。Processingは,「このように記述すれば,このような結果が得られる」という論理的な筋道を簡単に表現し,その動作の確認が行えるので,論理的思考力をトレーニングする教材として最適と考えています。
Python言語は,データ処理などで広く使われるようになったプログラミング言語で,データサイエンスや人工知能の分野では,主流のプログラミング言語になっています。プログラミングの課題は,学生が興味が持てる内容であり,かつ,これまで中学・高校を通して学んできた知識を活用する機会を与えるようなものにしました。

【各章について】
1章から7章までで,基本的なプログラミングの技術の最低限の要素を学びます。はじめはステップバイステップで丁寧にプログラムの書き方を説明していきます。新しい要素や概念は,必要に応じてその都度説明します。2章では,Processingを使用して簡単な図形を描くプログラムを作成します。3章では,変数と繰り返し文の使用方法,4章では条件文の書き方を学びます。5章では,マウス・キーボードからの入力によってプログラムの振る舞いを変える方法を学びます。これによって,ゲームなどの会話的な処理ができるようになります。6章では,関数の作成方法と使い方,7章では,リストと呼ばれるデータの集合の作り方と使い方を学びます。ここまでで,多くのプログラミング言語で共通に現れる,プログラミングの基本的な技術を学びます。8章以降は,それぞれがプロジェクトになっています。プロジェクトで作成するプログラムは,行数は短いけれどもそれなりの複雑さを持ったプログラムです。プログラムは穴埋め形式になっており,処理の流れを考えながらプログラムを入力するという作業で進めます。基本的な機能を実装・動作させた後は,各自自分のアイディアを追加機能として組み込んでください。8章では時計を,9章ではストップウォッチを作成します。10章では,音楽ファイルを読み込んでそれを映像として表現するサウンドビジュアライザを作成します。11章では,アクションゲームの作成に挑戦します。最後の12章では,迷路ゲームを作成します。乱数を使用して迷路を生成し,その上でゲームを行うプログラムを作ります。さらに,コンピュータにその迷路を解かせるプログラムを作成します。最後には,それを3次元的な表示が行えるように拡張します。

【著者からのメッセージ】
学習者の皆さんには,それぞれのプログラミングの課題の実現を通して,論理的に考える習慣をつけ,タイピングに慣れ,英語や数学の知識を活用できるようになることを期待します。思い通り動かないプログラムと悪戦苦闘しながらも,完成したときの達成感は大きいもので,学生諸君にはその感動を味っていただきたいと思います。

本書は,プログラミング初学者を対象として,「物事を論理的に考えて課題を解決する練習」をプログラミングの学習を通して実践するための書籍「つくって学ぶProcessingプログラミング入門」の姉妹版です。Java言語をベースとしたProcessingに代わってPython言語をベースとしたProcessingを使用するところが主な違いです。Python は,データ処理などで広く使われるようになったプログラミング言語で,豊富なライブラリを持ち,特にデータサイエンスや人工知能の分野では主流のプログラミング言語になっています。今後,これらの分野へ進む学習者に向けて,プログラミング技術がスムーズに繋がるよう考慮しています。

Processingは,グラフィックス機能・マウスやキーボード入力インターフェースに優れ,プログラムを実行した結果をビジュアルに確認することが簡単にできるプログラミング言語です。本書では,PythonモードのProcessingを使用します。プログラムの内容は,姉妹版と同等で,理系の大学初年度程度の知識を持つ,初めてプログラミングに取り組む学生を対象としていますが,高校生でもある程度理解できる内容になっています。「このように記述すれば,このような結果が得られる」という論理的な筋道を簡単に表現し,その動作の確認が行えるので,論理的思考力をトレーニングする教材として最適と考えています。

学習者には,プログラムに興味を持ちプログラミングの面白さを知ってもらいたいと考えています。そこで,プログラミングの課題を,学生が興味が持てる内容であり,かつ,これまで中学・高校を通して学んできた知識を活用する機会を与えるようなものにしました。例えば三角関数などこれまでなんの役に立つのだと思いながら勉強してきた数学の知識が,図形を描画するという課題に直面したときに,実際に有用なことをプログラムの作成を通して実感できます。また,英語で表示されるエラーメッセージも,慣れればどうということもないことに気がつきます。思い通り動かないプログラムと悪戦苦闘しながらも,完成したときの達成感は大きいものです。

1章から7章までで,基本的なプログラミングの技術の最低限の要素を学びます。初学者を対象としていますので,はじめはステップバイステップで丁寧にプログラムの書き方を説明していきます。なお,新しい要素や概念は,必要に応じてその都度説明します。2 章では,Pythonにはバージョン2と3があり,ProcessingのPythonはバージョン2である。本書で扱う範囲では,ほとんどバージョンによる違いの影響はないが,影響のあるところについてはその都度注をつけてある。Processingを使用して簡単な図形を描くプログラムを作成します。3章では,変数と繰り返し文の使用方法,4章では条件文の書き方を学びます。5章では,マウス・キーボードからの入力によってプログラムの振る舞いを変える方法を学びます。これによって,ゲームなどの対話的な処理ができるようになります。6章では,関数の作成方法と使い方,7章では,リストと呼ばれるデータの集合の作り方と使い方を学びます。ここまでで,多くのプログラミング言語で共通に現れる,プログラミングの基本的な技術を学びます。例題に沿って,実際にプログラムを入力して動作確認をしていってください。

8章以降は,それぞれがプロジェクトになっています。プロジェクトで作成するプログラムは,行数は少ないけれどもそれなりの複雑さを持ったプログラムです。プログラムは穴埋め形式になっており,処理の流れを考えながらプログラムを入力するという作業で進めます。基本的な機能を実装・動作させた後は,各自自分のアイディアを追加機能として組み込んでください。8章では時計を,9章ではストップウォッチを作成します。10章では,音楽ファイルを読み込んでそれを映像として表現するサウンドビジュアライザを作成します。11章では,アクションゲームの作成に挑戦します。最後の12章では,迷路ゲームを作成します。乱数を使用して迷路を生成し,その上でゲームを行うプログラムを作ります。さらに,コンピュータにその迷路を解かせるプログラムを作成します。最後には,それを3 次元的な表示が行えるように拡張します。学習者の皆さんには,それぞれのプログラミングの課題の実現を通して,論理的に考える習慣をつけ,タイピングに慣れ,英語や数学の知識を活用できるようになることを期待します。なお,本書の執筆分担は1~3章(石畑),4,5章(菊池),6~9章(長名),10章(長名,石畑),11章(菊池,長名),12章(石畑,長名)となっています。また,図面がカラーのものについては,コロナ社のWebページ(p.20参照)からダウンロードできます。

本書は,Windows10をプラットフォームとして使用し,この上で動作確認を行っています。使用しているProcsessingのバージョンは3.5.3です。ProcessingやWindows は,今後バージョンアップの可能性があります。内容について万全を期して制作しましたが,万一誤りや不備がありましたら出版元までご連絡ください。なお,本書の内容の運用による結果の影響について,一切の責任を負いかねます。

2019年12月 長名優子,石畑宏明,菊池眞之

1.Processingを始めるための準備
1.1 Processingのインストール
1.2 動作確認

2.初めてのProcessing
2.1 画像データ
2.2 プログラミング
 2.2.1 最初のプログラム
 2.2.2 図形の塗りつぶし
 2.2.3 線の色の指定
 2.2.4 背景
章末問題

3.変数と繰り返し文
3.1 変数
 3.1.1 変数の宣言
 3.1.2 変数を使用した演算
3.2 処理を繰り返す
 3.2.1 繰り返し文(for文)
 3.2.2 for文のネスト(入れ子)
3.3 システム変数
章末問題

4.条件分岐とマウスカーソルの座標に応じた処理
4.1 条件文
 4.1.1 条件式
 4.1.2 if文,if~else文,if~elif~else文
4.2 スタティックモードとアクティブモード
4.3 マウスカーソルの座標に応じた処理
章末問題

5.マウス・キーボードによる操作
5.1 マウスの動きに反応するプログラム
 5.1.1 変数mousePressed
 5.1.2 システム変数mouseButton
 5.1.3 関数mousePressed()
5.2 キーボード入力に反応するプログラム
 5.2.1 システム変数keyPressedとkey
 5.2.2 関数keyPressed()
 5.2.3 押されたキーの判定
章末問題

6.関数
6.1 関数とは
6.2 引数も戻り値もない関数
6.3 引数のある関数
6.4 戻り値のある関数
章末問題

7.リスト
7.1 リスト
7.2 多次元(2次元)リスト
7.3 リストを利用したプログラムの例
章末問題

8.つくってみよう:時計
8.1 時刻情報の取得
8.2 アナログ時計
 8.2.1 ウィンドウの作成と時計の外側の円の描画
 8.2.2 目盛の描画
 8.2.3 秒針の描画
 8.2.4 分針の描画
 8.2.5 時針の描画
8.3 ディジタル時計
 8.3.1 六角形を描画する関数drawhex()の作成
 8.3.2 七つの六角形で数字を描画する関数sevensegment()の作成(1)
 8.3.3 七つの六角形で数字を描画する関数sevensegment()の作成(2)
 8.3.4 時刻の描画

9.つくってみよう:ストップウォッチ
9.1 実行開始からの経過時間の取得
9.2 一時停止が可能なストップウォッチ
 9.2.1 ストップボタンでの一時停止
 9.2.2 リセットボタンの追加
9.3 ラップタイムの取得が可能なストップウォッチ

10.つくってみよう:サウンドビジュアライザ
10.1 音
 10.1.1 音とは
 10.1.2 PCM
10.2 minimライブラリ
10.3 音声信号の波形の表示(1)
10.4 音声信号の波形の表示(2)
10.5 音声信号の線の長さによる表現
10.6 音声信号の色による表現

11.つくってみよう:アクションゲーム
11.1 ゲームの作成手順
11.2 自キャラの基本動作の処理
11.3 床に関する処理
11.4 敵キャラに関する処理

12.つくってみよう:迷路
12.1 迷路の設定・表示
 12.1.1 盤の作成
 12.1.2 盤の初期化
 12.1.3 盤の表示
12.2 簡単な迷路の生成
12.3 キーボード入力でコマを操作するゲームの実現
 12.3.1 グローバル変数の宣言とゲームの初期化
 12.3.2 キーボード入力に対する処理
 12.3.3 コマやプレイ情報の表示およびゲームの終了
12.4 乱数を用いた迷路の自動生成
12.5 マウスでコマを操作するゲームの実現
12.6 迷路の自動的な探索
12.7 迷路の3D化
 12.7.1 迷路の3D表示
 12.7.2 キーボードによる操作

付録 本書で使用している関数・システム変数一覧

索引

amazonレビュー

長名 優子(オサナ ユウコ)

ニューラルネットワークなどの研究に従事

石畑 宏明(イシハタ ヒロアキ)

菊池 眞之(キクチ マサユキ)

脳の情報処理の研究に従事

掲載日:2020/07/15

情報処理学会誌「情報処理」2020年8月号広告

掲載日:2020/03/02

「電子情報通信学会誌」2020年3月号広告




★本書でつくって学ぶ動画★

『パラパラ漫画のようなプログラム』



『マウスカーソルの位置に応じて上下左右に向きを変えるようなプログラム』



『ディジタル時計』



『アクションゲーム』




『迷路』