pg03

テーマ ビジュアルプログラミング + ゲーム制作 + Pyonkee でセンサーを利用する

おすすめのブラウザ設定:

Google Chrome を 既定のブラウザに設定する

方法: Google Chrome を起動 → 設定アイコンをクリック → 設定 → 既定のブラウザ → デフォルトに設定 → Google Chrome を選択 → 強制的に変更

オープニングネタ: 2019年度は後に回す。演習に先に取り組み、時間が余ったらコメントする。

http://uxmilk.jp/46167 「プログラミングは簡単に学べる」という嘘(2016のBlog記事

twitter 完全に理解した で検索

C++ 完全に理解したTシャツ

プログラミング言語 C++ の文法や機能の複雑さがネタに。

C++はプログラミング言語Cにオブジェクト指向をサポートする機能を追加した言語。

完全に理解したとチョットだけできるの波

プログラミング入門では完全に理解したマウンテンの麓まで案内します。

もっと先に進みたい言語に出会ったら、完全に理解したマウンテンの山頂目指してください。

Cargo-Bot の問題の解答例:

Impossible レベルの問題 Mirror 2 を☆☆☆で解いていた受講生がいたので、私もやってみました。

https://youtu.be/IRzF6QJcqro 条件判定なしで割とストレートに解けた。多分、想定外の解き方。

Cargo-Botの上級問題はProg1~4の他のプログラムにジャンプ(呼び出し)するブロック+条件判定を利用して再起呼び出しアルゴリズムを利用して解く問題が多い。

プログラムの呼び出しと、呼び出したプログラムの実行終了後に続くプログラムについて

メインのプログラムから呼び出して使用するプログラムをサブプログラムと呼ぶ。

Cargo-Botでは、 Prog1 がメインプログラムで、Prog2~4がサブプログラム

サブプログラムから別のサブプログラムを呼ぶことも可能。

自分自身を呼び出すプログラムを再帰呼び出しプログラムという。

説明用動画(Cargo-Botのサブプログラム終了時のプログラムの動作について確認して下さい。)

予習: http://www.nhk.or.jp/gijutsu/programming/ WHY プログラミング(NHKの番組)

準備: iPad に Pyonkee をインストールしておく。

プログラミング学習環境 Scratch

Scratchのバージョンについて

Scratch1.4

2018年までのプログラミング入門で使用してい旧バージョン。

サンプルプロジェクトから8種類のゲームが利用できる。Scratchによるゲーム制作の参考にするためにゲームプロジェクトを授業でいくつか紹介する。

特徴:

パソコン用のアプリ。ネット不要。Kinectなど外部センサーを利用可能。

スプライトのクローン機能は無い(多数のオブジェクトを管理するのが大変)

Smalltalkでカスタマイズ可能

Smalltalkは初期のオブジェクト指向言語

気になる人は Scratch からSmalltalkを利用する方法を調べてみてください。

Squeek というプログラミング学習環境にScratchを切り替えることができます。

ScratchとSmalltalkの関係

Scratch2.0 2018/9月時点

旧バージョン

特徴:

Flashを利用したWebアプリ。Flashをブラウザで利用できなくなりつつあるので3.0へ移行された。

ブラウザでScratchを利用できる。アプリのインストール不要。ネットを使用しないオフライン版もある。

スプライトのクローン機能、自作ブロック定義、Webカメラやマイクの利用が可能。

クラウド上でScratch作品を投稿共有可能。

Scratch3.0 2018年末からサービス開始

特徴:

2.0と比べて利用可能なブロックの整理・追加が行われている。

HTML5ベース。Flashを利用していない。

※3.0は iPadのブラウザで動作します。しかし作成したプログラムはファイルから保存ができません。

Scratchの派生バージョンについて:

Pyonkee

iPadのアプリ版のScratch2.0相当。

iPadの各種センサーやPyonkeeを実行しているiPad間での通信でデータ共有が可能。

SNAP!

SNAP!はScratchを元にして作られたプログラミング学習環境。

高校~大学レベルのコンピュータサイエンスを学ぶことができる。

SNAP! (1/2) (旧カリキュラム 3年後期科目 オブジェクト指向の講義での利用例)

SNAP! (2/2) (続き)

想定された学習項目) カスタムブロックの定義(関数、手続き、引数) 再帰的手続き 再帰的関数定義

オブジェクト指向 関数型プログラミング 関数オブジェクト 高階関数

継続スタイルプログラミング リスト処理 並列実行システム

カスタム制御ブロックの定義

・高速実行モードがある

・プログラムを処理するプログラムの作成が可能(関数型プログラミング)

今回の課題について

課題1と課題2の どちらかを選択して Webclassにスクリーンショットをアップロードする。

スクリーンショットの画像だけでは、制作したプログラムの工夫した点などが講義担当者に伝わらない場合は、スクリーンショットにペンで説明を書きこんでからWebclassにアップロードする。

または、ScratchやPyonkeeやSNAP!で作成したプログラムをパソコンやiPadに保存してからアップロードする。

保存方法は、このページの最後のほうを見てください。

課題1:

Scratchによる作品制作

Scratch3.0やSNAP!によるプログラム(アニメーションや演奏プログラム)

(ヒント)単純な図形の単純なループアニメでも工夫次第で面白い。

例) オプティカルイリュージョン

Scratchの概要と基本操作を紹介する。

旧バージョンの Scratch1.4 を使用する手順:

起動方法: スタートボタン → Scratch → Scratch

現行バージョンの Scratch3.0 を使用する手順:

Scratch3.0 ←をクリック。または Scratch をWebで検索

説明資料: https://prezi.com/hgetfbq5jver/2016/

2017年度受講生の課題作成例:

もっと簡単なものやサンプルゲームを改造したものでもOKです。

課題2:

Pyonkee によるプログラム

Pyonkeeでセンサーを利用したプログラム

説明資料: http://prezi.com/5co9dsmbo_u9/?utm_campaign=share&utm_medium=copy&rc=ex0share

センサーの利用例:

・ PyonkeeでiPadのセンサーを利用する方法は↑の説明資料も参照

・ 変数にセンサーで調べた値を保存して、判定で利用する例は以下の画像を参照

提出方法

課題1 または 課題2 のどちらか1つをWebclassに提出。

(両方提出した場合は、追加点を与える)

※スクリーンショット(+説明書き込み) または、ブログラムをファイルに保存して 提出してください。

Scratch1.4の場合: 作成したプログラムをファイルに保存する → Webclassに提出

提出するプログラムは、Gamesの中にあるサンプルプログラムを改造したものでOK。

または 白紙から完全にオリジナルで作成したものでもOK。

Pyonkeeの場合: 作成したプログラムを自分の学籍番号のメールアドレス宛に送る

→パソコンやiPadで受信する(Office365やメールアプリを利用)

→ 添付ファイルを保存する

→ Webclassに提出

※ iPad には大学のアカウントを設定 → 本多先生提供資料

SNAP!の場合:

ファイルアイコン → export project (プロジェクトを書き出す)