"BOKU"のITな日常

62歳・文系システムエンジニアの”BOKU”は日々勉強を楽しんでます

Scratch(スクラッチ)入門(4)/変数を使った正多角形を描くスクリプト

Scratch(スクラッチ)3.0で、基本的な図形(正方形とか正五角形とか)を描くスクリプトを変数を使ってやってみます。

f:id:arakan_no_boku:20200824233948p:plain 

 

はじめに

 

Scratch(スクラッチ)の用語を使って説明するので、わからない場合は以下の記事を先に読んでおいてください。 

arakan-pgm-ai.hatenablog.com

この記事は前回(3)の続きです。

 

arakan-pgm-ai.hatenablog.com

 

今回は「変数」を使います

 

前回は正多角形を描くプログラムをいかのように書いてました。

f:id:arakan_no_boku:20200902221004p:plain

そして、スクリプトの数字を書き換えることで、いろいろな多角形を描きました。

でも。

こういう風に数字をダイレクトにかくのは「マジックナンバー」などと呼ばれて、本来はプログラムとしてはヨロシクない・・やってはいけない・・の代表格のやり方です。

この数字の部分を「変数」に置き換えてみます。

 

変数を定義する

 

変数ブロックパレットで「変数を作る」を選びます。

f:id:arakan_no_boku:20200902222252p:plain

すると、以下のようなウインドウが開くので、自分のわかりやすい名前を定義します。

f:id:arakan_no_boku:20200902222536p:plain

「すべてのスプライト用」にするか、「このスプライトのみ」にするかは用途に応じて選べばいいです。

でも、今回はスプライトを一つしか使わないので、どっちを選んでも同じです。

今回は以下の3つの変数を定義しました。

f:id:arakan_no_boku:20200902223036p:plain

 

数字部分を変数に置き換える

 

変数を定義すると、変数ブロックパレットに定義した変数が追加されます。

f:id:arakan_no_boku:20200902223213p:plain

これをドラッグして、数字の部分にドロップすると、数字が変数に置き換わります。

f:id:arakan_no_boku:20200902223354p:plain

これで、それぞれの変数のところに、さっきの数字を入れると同じように動くのですが、それだけだと、あまり変数にしたありがたみがありません。

正N角形の「N」にあたる数字だけ入力し、あとは自動計算するようにしてみます。

 

変数の計算を追加する

 

まず「回転角度」です。

これは360度を「角数」で割った数字でOKのはずです。

あと、「すすむ距離」です。

この長さを同じにすると、角数が増えると、図形が大きくなってしまいます。

四角形の時の距離「100」を4を指定した角数で割って縮めてみます。

例えば、正八角形なら角数は「8」なので、「4÷8 = 0.5」なので、100×0.5=50を「すすむ距離」にする・・って感じです。

その計算を追加すると、こんな感じになります。

f:id:arakan_no_boku:20200902225447p:plain

 

作り方を順番にやります。

まず。

変数ブロックパレットから以下をドロップします。

f:id:arakan_no_boku:20200902225632p:plain

変数名はプルダウンで選べます。

まずは「回転角度」からやります。

プルダウンで変数名「回転角度」を選び、演算ブロックパレットから割り算のブロックを「を」と「にする」の間の「0」の上にドロップします。

f:id:arakan_no_boku:20200902225941p:plain

ちなみに。

プログラムでは掛け算は「*」、割り算は「/」で表現します。

×と÷ではないので、ご注意を。

さて。

あとは、割り算のブロックの前のところに「360」を入力し、後ろの部分に変数ブロックパレットから「角数」をドロップするわけです。

f:id:arakan_no_boku:20200902230308p:plain

すすむ距離の計算も同様です。

ただ、こちらは「100 × (4 ÷ 角数)」という計算が必要です。

こういうときは、まず掛け算

f:id:arakan_no_boku:20200902230736p:plain

をドロップして、左側に「100」の数字を入力し、左側のところに割り算をドロップしてやります。

f:id:arakan_no_boku:20200902230855p:plain

あとは、割り算の左側に「4」を入力し、右側に変数「角数」をドロップする・・そんな感じで定義していきます。

f:id:arakan_no_boku:20200902231049p:plain

 

変数を入力できるようにする

 

ステージに変数「角数」が表示されているので、そこを右クリックします。

すると以下のような選択肢がでてきます。

f:id:arakan_no_boku:20200902231635p:plain

ここで「スライダーの指定範囲を変更」を選びます。

f:id:arakan_no_boku:20200902231834p:plain

ここで最小値「4」、最大値「12」にします。

こうすると、スライダーで「4」から「12」の範囲で選択できるようになるので、正四角形から正十二角形までを描画できるようになります。

で。

入力する必要のない変数は、変数ブロックパレットでチェックを外して非表示にしておきます。

f:id:arakan_no_boku:20200902233417p:plain

すると、以下のような画面になります。

f:id:arakan_no_boku:20200902232048p:plain

これで、スライダーで数字を選んで、Gaboくんをクリックすると図形がかけます。

うーーん。

だいぶ、プログラムっぽくなってきました。

ちなみに。 

以下のリンクでプロジェクトを公開しています。

https://scratch.mit.edu/projects/422092496

 

f:id:arakan_no_boku:20200902233820p:plain

実行したり、中を見るボタンでデスクトップを表示して、適当に変更してみたりしてみてください。

今回はこんなところで。

ではでは。