2018年2月20日火曜日

「子どもプログラミングドリル」未収録サンプル(3)

拙著『こどもプログラミングドリル[Scratch編]』でページ数の都合で収録できなかったサンプルプログラムの続きです。

●ペンをクリックしたときの動きを設定しよう

 ここからは実際のスクリプトの動作です。まず、ペンの動作です。このスクリプトでは、まず正何角形の図形を描きたいのか、ユーザーに入力してもらいます。「3」と入力すれば正三角形を、「5」と入力すれば正五角形を、「9」と入力すれば正九角形といった具合に、ユーザーが入力した数値によって描く画像が変わります。
 そこでまず、ペンがクリックされたときに、何角形にしたいかを入力してもらいます。これは「調べる」スクリプトの「[What's your name?]と聞いて待つ」ブロックで実行できます。次のように設定してみました。

(ペンをクリックすると、「何角形?」と聞いて待ちます)


(キーボード入力エリアが表示され、ユーザーからの入力を待ちます)


 このキーボード入力エリアでは、数字キーが入力される必要があります。また、「500」などといった数字を入力されると、多角形は描けません。ここには「3〜10までの数字で入力してね」などといった注意書きを入れておいてもいいでしょう。
 ユーザーから入力された数値は、「答え」ブロックのなかに入っています。この「答え」は、あとで多角形の角の数として利用します。


●正n角形を描くための計算式を組み込もう

 この多角形を描くスクリプトの、もっとも重要な部分をこれから作っていきましょう。といっても、それほど難しいわけではありません。
 多角形を描くためには、ペンを使います。これは「ペン」スクリプトのなかの「ペンを下ろす」ブロックで行います。ペンを下ろしたままスプライトが動くと、スプライトの動きとともに線が引かれます。
 ペンを下ろしたら、まずスプライトを動かしましょう。ステージで実際に動かしてみて、適当な歩数を設定します。ここでは100歩に設定してみました。

(ペンを下ろし、線を引く設定を行います)


 正多角形を描くために、スプライトは100歩動いてまず多角形の一辺を描きます。次に必要なのは、角で方向を変えて曲がることです。曲がるためには、「動き」スクリプトのなかの「( )度回す」を使えばいいでしょう。では、何度曲がればいいのでしょうか?
 ここで先の計算が役立ちます。たとえば正三角形を描くためには、角で120度外側に曲がりました。この120度という計算は、次の式から求められます。

 三角形の曲がる角度(内角)=180度−(360度÷3)

 この計算で曲がる角度の内角が出ます。三角形なら60度です。このとき三角形の角の外角、つまり外側の角度は120度になります。120度ずつ曲がっていけば、その内側に三角形が描かれるわけです。
 この外角の計算は、次の式で算出できます。

 三角形の外角=360度÷3

 まったく同じように、n角形の外角は、次の式で計算できます。

 n角形の外角=360度÷n

 では、実際に当てはめてみましょう。ペンのスプライトで線を描き、100歩動いたら(線を引いたら)120度曲がり、続けて100歩分線を引き、さらに曲がってまた100歩分線を引きます。次のスクリプトです。

(三角形を描くスクリプト)

 このスクリプトをクリックし、3回線を引くと、正三角形が描かれます。3回繰り返すなら、次のように改造します。

(クリックすると、三角形が描かれるスクリプト)

(スプライトが三角形を描きました)

 これは三角形の場合ですが、実は他の正多角形もまったく同じ方法で描くことができます。三角形は「360度÷3」度ずつ3回曲がり、線を3本描けば三角形です。四角形なら、「360度÷4」度ずつ4回曲がり、線を4本描けば四角形です。
 同じように、n角形は「360度÷n」度ずつn回曲がり、線をn本描けばn角形になるのです。
 そしてこのnは、先に「何角形を描きますか?」と聞いたとき、ユーザーがキーボードで入力した数値になるわけです。
 つまり、n角形を描くためには、次のスクリプトを実行すればいいことになります。

(n角形を描くためのスクリプト)

 これでn角形を描くことができるようになりました。まだ学校で習っていないことが出てきたかもしれませんが、数学の勉強はプログラミングにも、そしてゲームのプログラムを作るためにも、必ず必要になるものです。ぜひ勉強してみてください。

●魔法使いの手品を作ろう

 このスクリプトには、もうひとつ魔法使いのスプライトを用意しましたね。忘れずにこちらの動作も作っておきましょう。
 魔法使いの機能は、ステージに描かれた図形を、一瞬で消してしまうことです。魔法使いのスプライトがクリックされたら、何か呪いを言い、描かれていた図形を消し去ってステージをきれいにします。
 呪いを言うのは、「見た目」スクリプトのなかの「[Hello!]と(2)秒言う」ブロックを使えばいいでしょう。
 ステージには、ペンで描かれた図形がありますが、こちらは「ペン」スクリプトのなかの「消す」ブロックを使えば、一瞬ですべての図形が消えてしまいます。スクリプトは次のようになります。

(魔法使いのスクリプト)

 とくに難しいところはありません。魔法使いに、もっとたくさんの機能を付け加えてもいいのですが、ここではステージに描かれている図形を消す、という機能だけにしてみました。



「子どもプログラミングドリル」未収録サンプル2/4 → 「子どもプログラミングドリル」未収録サンプル4/4

4866362332
こどもプログラミングドリル (Scratch(スクラッチ)編)
(武井 一巳)
standards
¥1944

0 件のコメント :

コメントを投稿