始める小学生からのプログラミング小学生から始めるスクラッチプログラミング:多角形を一つのブロックでかく方法みなさま、こんにちは。前回までで、シューティングゲームの作り方を紹介しました。ゲームの完成度を高くしていくのは、それはそれでよいのですが、内容が偏ってしまうので、今回は違う内容で書きたいと思います。スクラッチにはペンという図形を描く機能があります。これは、スプライトが移動したあとが線で表示されるという機能です。これをつかって、いろいろな図形を書いてみることにします。線の書き方についてまずは確認します。ペンというカテゴリのブロックを見てください。「ペンを下ろす」というブロックと「ペンを上げる」というブロックがあります。ペンを下ろすがいわゆる書き始め、ペンを上げるが書くのをやめるという意味になります。ペンを下ろしたあとにスプライトが移動した部分に線が書かれます。試しに、直線を書いてみましょう。右にあるプログラムでは、最初に座標をそれぞれ0に設定しています。これはスタートの位置を設定しているだけです。前に書かれていた線は消すようにしています。その後、「ペンを下ろす」で線を書き始めます。100歩動かすで動いたときに、線が書かれるようになります。左の図のように直線が1本表示されるはずです。三角形をかく次に基本的な図形の一つですが、三角形を書いてみたいと思います。三角形の中でも辺の長さが全て同じである、正三角形をかきます。正三角形なので、辺の長さが全部等しく、角度が全部等しい三角形ですね。正三角形の一つの角度は、60度です。「直線を書いて、60度右に回る」を3回繰り返せば、三角形になる気がします。実際にやってみましょう。賢明なみなさまは、このような間違いはしないのかもしれませんが、これでは三角形にはなりません。内側の角度は確かに60度なのですが、上の図のように三角形の外側の角度になるので、60度ではなく120度回転させるのが正解です。(多角形の外角の和は360度ということです。)では、120度にしてもう一度動かしてみましょう。今度は期待通りできました。正三角形ができています。ところで、今回はこのような図形をたくさん書いていく予定なのですが、毎回同じ図形を書くために、同じブロックを何個も並べるのは効率が悪いです。そのため、同じ機能を一つのブロックにする方法を書きます。ブロックを作る一つのブロックにまとめる方法がスクラッチでは用意されています。その他のカテゴリにある、「ブロックを作る」を選んでみてください。図に示すような、新しいブロックというボックスが現れるはずです。このなかに、新しく作るブロックの名前を書いてください。今回は三角形を作るブロックなので、三角形とします。三角形」と書いてあるブロックにつなげてください。三角形を使いたい場所に、「三角形」ブロックを置いてください。これで、先ほどと同じ動作をすれば正しくブロックが作られています。四角形をかくさあ、三角形ができたあとは、四角形になります。四角形でも今回は正方形を書いてみます。先ほどの正三角形の考え方と同じです。「直線を引く、90度回る」を4回繰り返せば、正方形になるはずです。(外角を求めても同じく90度なので今度は間違えないですかね。)六角形をかくさあ、つぎは六角形を書いてみます。(3,4、と来たら5だろうというアナタ。自分で書いてみてください。多角形の外角の和は360度というのを考えれば、何度回すかはすぐに分かるでしょう。)ただ、書き方を少し変えます。正三角形を6回つかって正六角形を書きます。図のように正三角形を60度ずつまわして書いていくと、正六角形になります。図の例を見ていただくとわかりますが、六角形のブロックの中で三角形のブロックを使っています。このようにブロックの中でも呼び出すことができるのです。図形を組み合わせるつぎは、この六角形を使ってもうすこしこった図形を書いてみます。六角形を10度ずつ回して6回書くとどういう図形になるでしょうか。これを実際に自分で手で直線を引きながら書くのは大変面倒ですが、コンピュータ上のプログラムであれば、一発です。プログラムができるようになってくるとすぐに試して確認することができるので、いろいろ思考をするのに使えるツールになってくるのです。六角形を10度ずつ回して6回書くのはつぎのようになります。実際に動かしてみていただきたいのですが、6回描画が進むたびに図形が変化していくのを見ることができます。それぞれの図形が重なって模様が出来上がりました。つぎは四角形でも同じように10度ずつ回転させて、今度は36回回転させるとどうなるでしょうか。ブロックを共通化するお気づきかと思いますが、三角形をかくプログラムと四角形をかくプログラムはほとんど作りが同じです。これを共通化して、一つのブロックで表現できないでしょうか。新しいブロックを作るときに出ていた画面で、オプションという部分がありました。この部分を見ていただくと、引数を追加するという記述があります。「引数」という言葉が少々わかりにくいのですが、次のようなときに使います。ブロックを共通化するときにある部分だけ変えたい時があります。三角形と四角形の例でいうと線を書くのは3回なのか4回なのかという場合です。これを数字で与えて、ブロックの中で変更できるようにすると同じブロックで共通化できます。この共通化するために使うあたいのことを、「引数」と呼びます。いう名前にしています。ところに数字で角の数を与えるとそれに合わせた図形が描けるということです。回、回す角度は先ほどから何度か説明している、「多角形の外角の和は360度である」という定理から導かれます。(小学生には難しいかも。最後で少し書いています。連続で描画すると図に示したような模様になります。ご自分でいろいろ試してみるとさらに理解が深まると思います。まとめ今回は、スクラッチのペンという機能の説明をしつつ、ブロックをつくる方法について説明しました。ブロックの作り方の部分は、プログラミングを理解していく上で重要な考え方の一つです。呼ばれているものです。機能を一つのまとまりとして作り、それを組み合わせてより複雑なプログラムを作ることで、効率の良い記述ができるようになります。機能をできるだけ一般化(どういう状況でも使えるような形にする)と、いろいろな場面で使うことができます。(*おまけ)ところで、小学校ではどの程度まで多角形の図形に関してどう学ぶのかが若干記憶の彼方になってしまっているのですが、多角形の中に三角形がいくつ入っているかを知ることで、内角の和を知るのでしたでしょうか。