SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

Scratch(スクラッチ)(4)/変数を使う(サンプル:正多角形を描くプログラム)

f:id:arakan_no_boku:20200824233948p:plain 

目次

変数を使います

用語等がわからない場合は、以下の記事を参照ください。

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

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

scratchの他の記事一覧はこちらです。

arakan-pgm-ai.hatenablog.com

今回はこんなところで。

ではでは。