円錐(コーン)を作る

円錐(コーン)を作る

Scartch プログラミングで複雑な仮想オブジェクトを作っていきます。まず初めに「円錐(コーン)」をクラフトします。「円錐」は丸い塔の屋根などに使用します。「円錐」は「S2AR 拡張ブロック」には含まれていませんから、「円柱ブロック」を使って、自分でクラフトしなければなりません。

円柱ブロックを重ねて「円錐」を作る

図2-1-1

図2-1-1を参考に「色指定ブロック」と「円柱ブロック」を積み重ねてください。円柱の半径については、0.5 間隔でだんだん小さくなるように数値を設定します(青枠)。y座標の位置を一つずつ上げていくことを忘れないようにしましょう(赤枠)。ブロックの色を「黒 ⇄ 白」と変えることで、奇数段が「黒」、偶数段 が「白」を表すようにしました。

図2-1-2

パソコンデスクの上に「原点ブロック」を置いて、プログラムを実行しました。目的通りに0.5 刻みの円柱が積み上げられて、円錐をクラフトできました。

Scratch プログラミング入門

図2-1-3

先程、円柱を11段積み重ねて円錐をクラフトしました。もしこの円錐を100段にするとしたら、どうでしょう。半径や Y座標など数値を間違えないように注意しながら、何とか手動でプログラムできそうです。
では1000段にするとしたら、どうでしょう。Scratch のスクリプトエリアに1000段のブロックを置くだけでも大変です。数値(半径や Y座標)を間違いなく設定していくのも手間がかかります。できれば誰かに助けてもらいたいと思うはずです。

こういったときこそ、プログラミングの出番です。プログラミングは、あなたの指示通りに文句も言わず超高速に仕事をしてくれる、あなたの最高のアシスタントです。プログラミングと友達になって(仲良くなって)おくと、将来きっと役に立ちますよ。

今回の円錐のように、同じような作業が繰り返されるときは、「繰り返し処理」という仕組みを使えば、プログラムを短くして、読みやすくすることができます(可読性が上がるという)。また半径や積み重ねる段数なども簡単に変更できて、様々な場合を試すことができるようになります。
円柱の半径や Y座標のように、同じ間隔で数値が変わっていくときは、「変数」という仕組みを使うと便利です。
「黒 ⇄ 白」と設置するブロックが変わるときは「条件分岐」という仕組みを使います。今回の円錐の場合は、条件分岐で「奇数段は黒、偶数段は白」と指定してやることで、毎回色を指定する手間が省けます。

プログラミングの基礎である「繰り返し処理」、「変数」、「条件分岐」を一つずつ学んでいきます。

変数とは

ここから本格的はプログラミングに入っていきます。本格的と言っても難しいことをするわけではないので安心してください。一つずつゆっくりとプログラミングに慣れていってください。よく理解できなくても、手順通りに進めていくことで、仕組みがわかってくることは多いです。プログラミングも「習うより慣れろ」です。

図2-1-4

図2-1-4は「変数の例」を示した図です。今回は、s2arX, s2arY, s2arZ, r, i の5つの変数を使用します。

図2-1-5

変数とはデータ(数値や文字列)を入れておく箱のようなものです。変数は、コンピュータにデータ(数値や文字列)を渡して仕事をさせるときに使います。

コラム 文字列とは

文字列とは、単語や文章のように文字が複数個つながったものです。例えば英単語や日本語の単語はすべて文字列になります。意味のない文字の連なり「;1+djo;na」も文字列と呼ばれます。数値は文字列ではありません(決められた計算式で計算できるので)。一文字のときは厳密には「文字」と呼ぶべきですが、Scratch プログラミングでは文字列としても問題ありません。

変数の設定

実際に変数を使えるようにしてみましょう。

図2-1-6

Scratch の「カテゴリー」から「データ」を選びます。「新しい変数」をクリックします。変数の名前を「s2arX」と入力して「OK」を押してください。変数「s2arX」が作成されました。
同様にs2arY, s2arZ, r, i の変数を作成します。今回使用する変数は、この5つです。

各変数について説明します。

s2arX は「s2ar の座標系の X座標」を表す変数です。(ここにブロックを置くことになります)
s2arY は「s2ar の座標系の Y座標」を表す変数です。
s2arZ は「s2ar の座標系の Z座標」を表す変数です。
r は「円柱の半径」を表す変数です。(r は radius の略)
i は特殊な変数で、「プログラム上で数を数える(カウントする)」ために使用します。カウンター変数とも呼ばれ、慣習的にアルファベットの i(アイ)が使われます。(i の他に j, k などがカウンター変数として使用されます)

コラム 変数の名前

プログラミングでは、変数の名前のつけ方に特別な決まりがあります(これを「命名規則」という)。Scartch は初心者が迷わないように配慮されているので、難しい命名規則はなく、好きな名前をつけることが可能です。日本語の名前を使うこともできるのです。
しかし今後、本格的なプログラミング言語に進んでいくことを考えると、日本語の名前は使わない方がよいと考えました。変数の名前には、一般的に「半角英数字」が使われます。変数の名前を見て、用途がイメージできるように名前を付けることが重要です。

変数の初期値を設定

変数は variable(変わることができるもの)の日本語訳です。その名前の通り、プログラムを実行中に「中身のデータ(数値や文字列など)」はどんどん変わっていくのですが、変わる元となる初期値は必ず設定しなければなりません。

スクリプトエリアに

図2-1-7

図2-1-7のブロックを7つ移動します。

図2-1-8

▼を押して、変数名をs2arX, s2arY, s2arZ, r, i になるように設定します。

図2-1-9

次に変数の初期値を
s2arX = 0
s2arY = 3
s2arZ = 0
r = 6
i = 0

になるように設定します。図2-1-9のプログラムをクリックして実行すると、各変数に初期値が設定されます。左上のステージを見て確認してください。

(注意)プログラミングでは「=」は右の値を左の変数に代入することを示します。数学の「イコール」とは全く違うので注意してください

以上で、変数の初期値の設定は終了です。

繰り返し処理

図2-1-10

今回の円錐では、色の指定、円柱を置く、色の指定、円柱を置く…のように同じ作業の繰り返しが何度も登場しました。一般のプログラム上でも、こういった繰り返しがたくさん出てきます。そんなときに使うと便利な仕組みが「繰り返し処理」なのです。

繰り返し処理をプログラミングしてみましょう。

変数の初期設定の下に

図2-1-11

図2-1-11のブロックを合体させます。繰り返しブロックの間に

図2-1-12

図2-1-13

「繰り返しブロック」の間に図2-1-12/ 13の2種類のブロックを挿入します。

図2-1-15

図2-1-15を参照に、繰り返し処理を完成させてください。11回、円柱ブロックを重ねるプログラムができました。

図2-1-16

プログラムを実行してみると、真っ黒な円錐が現れました(作業手順によっては真っ白な円錐になるかもしれません)。成功です。次に、交互に色を変える方法を考えていきます。

条件分岐

図2-1-17

条件分岐とは、プログラム自身に判断させて、処理を分ける仕組みのことです。
あらかじめ与えられた「条件式」をプログラムは読み込みます。条件に合致している(YES)のときは「処理1」を実行します。合致しない(N0)のときは「処理2」を実行します。

この章の最初に作ったプログラムでは、円錐の1段目は「黒」、2段目は「白」、3段目は「黒」、、、といちいち色を指定しました。条件分岐を使えば、そういった面倒な作業がなくなります。

今回の円錐の場合は、条件式は、「繰り返し回数が偶数かどうか?」です。偶数のとき(YES)は処理1「ブロックの色を黒に設定」が実行されます。奇数のとき(NO)のときは処理2「ブロックの色を白に設定」が実行されます。

条件分岐で白と黒を分ける

実際に「条件分岐」をプログラミングしてみましょう。

図2-1-18

図2-1-18が条件分岐を表すブロックです。「もし< >なら」の部分に「条件式」を挿入します。その下に「処理1」と「処理2」を挿入することで、処理を分岐させることができます。

図2-1-19

条件式は「繰り返し回数が偶数かどうか」です。繰り返し回数は「i」なので、それを2で割った余りを見て、「0」なら「偶数」、「1」なら「奇数」ということになります。(プログラムで回数を数えるときは、「0」から数えることが多いです。一般の感覚とは違いますが、「0」から数えた方が何かと都合が良いからです。今回の円錐でも「0」から数えていますから、「0 = 偶数は黒」となります)

図2-1-20

図2-1-21

この2つが「処理1=ブロックを黒(r, g, b)=(0, 0, 0)に設定」「処理2=ブロックを白(r, g, b)=(255, 255, 255)に設定」を表します。

図2-1-22

以上の4つのパーツを合体させて、条件分岐ブロックが完成します。「i 」の数が 0, 1, 2, 3, 4, … と一つずつ増えていく度に、「処理1」「処理2」が交互に呼び出されるプログラムが完成しました。

図2-1-23

図2-1-22の条件分岐ブロックを「円柱ブロック」の上に合体して、今回のプログラムは完成です。実行して、白と黒が交互に変わる円柱ができることを確認してください。

プログラムの改造

今回のプログラムを改造してみましょう。

図2-1-24

円柱の半径を「20」、繰り返し回数を「100」、間隔を「0.2」に設定して見ます。これで100段積みの円錐ができるはずです。

図2-1-25

実行結果が図2-1-25です(実行に時間がかかる場合は、iPhone を動かさずにしばらくお待ちください)。目的通り「100段積みの円錐」が完成しました。高さは約1 メートル(100 cm)の円錐です。
(厳密にいうと、半径 1 以下の円柱は置かれませんので、96段の円柱になっています)

図2-1-26

今回作成したプログラムは、「ファイル」→「プロジェクトを保存?」から、名前「ar_corn.sbx」をつけて保存しておきましょう。

図2-1-27

ファイルを保存する場所は自由に決めてよいのですが、オススメは「書類」フォルダの中に「ScratchX_project」フォルダを作って、その中にファイルを入れていくことです。(もっと簡単な方法は「デスクトップ」にそのままファイルを入れていくことです)

このプログラム(ar_cone.sbx)はダウンロードして、自分で確かめることがきます。

サンプルプログラムへのリンク

(このリンクのサポートサイトから「対象のファイル」をダウンロードしてください)

(宿題)色を変更したり半径や段数を変えたり、初期値の違った、色々な円錐を作ってみましょう。繰り返し回数を増やして、r(半径)がマイナスになったときに、どうなるか実験してみましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です