変数と演算 スクラッチ × マインクラフト 6回目

さて前回は段数(回数)を取得するために変数を作るということになりました。
考え方としては
1段目の変数は1
2段目の変数は2
3段目の変数は3
4段目の変数は4
として1段終わると変数に+1することにするとプログラムも楽です。
1段目は1
2段目は1+1
3段目は2+1
4段目は3+1
ですね。
新しい変数の名前は何でもいいのですが段数を変えることになるのでここではdanとしておきます。
設置個数を求める計算式は
1×2-1=1
2×2-1=3
3×2-1=5
4×2-1=7
なので
dan(1)×2-1
dan(1+1)×2-1
dan(2+1)×2-1
dan(3+1)×2-1
となります。
これを繰り返しの命令の中に組み込みます。
今まで繰り返しの命令には直接数値を指定していましたが変数も指定できますし、演算式も指定できます。
ということでプログラム例はこちら。

設置をする前に変数danを1にセットします。
今回はまず4段繰り返すことにするので最初の繰り返しの命令は4を指定します。
設置の個数は変数と演算式を使用します。
上で求めた計算式に変数と演算式を当てはめただけです。
1段目の設置(1×2-1)が終わればZ座標と変数danを+1します。
変数danが2になったところで2段目の繰り返しです。
2段目の設置数は2×2-1となります。
これを4段分繰り返します。
これを実行すると以下のように設置されます。

うまくいきましたか?
あとはX座標をうまく指定できれば完成です。
開始地点としたい座標
1段目は0
2段目は-1
3段目は-3
4段目は-5
これですね。
完成イメージからX座標の数値の動きを見ていきましょう。
今まで使用してきているプログラムでは設置後に座標が1移動することも考慮しましょう。
1段目の設置開始座標は 0、1個設置後の座標は1
2段目の設置開始座標は-1、3個設置後の座標は2
3段目の設置開始座標は-2、5個設置後の座標は3
4段目の設置開始座標は-3、7個設置後の座標は4
になります。
画像にすると

設置イメージ図

こうですね。
座標の数値をよく見てみるとここで規則性があることに気が付きます。
設置後の座標に-1をかけると次の開始地点の座標になっています。
画像にすると途端にわかりやすくなりましたね。
プログラムで表すと

スクラッチ1.4ブロック024

となり、先のプログラムに組み込むと

スクラッチ1.4ブロック025

実行すると

できましたね!
このように考えてもわからない場合は絵をかいてみたり、図を描いてみたりすると気づくこともあります。
そして大事なことですがこのプログラムは一例でありやり方はほかにもあります。
例えば設置開始座標ですが
設置後の座標からの移動数が
1段目から2段目で-2
2段目から3段目で-4
3段目から4段目で-6
4段目から5段目は-8
になりますので
開始座標をdan×-2ずつ変えると同じ動作になります。
いずれにしても正解は1つではなく複数存在する場合があります。
大事なことは自分がわかりやすいようにするということです。
プログラムを組むと後から見直さなければいけないことが必ず出てきます。
自分で見やすいようにしておくことが一番です。
今回は新しい変数を設定してプログラムを組んでみました。
しかしプログラムにはもう一つ大事な避けては通れないものがあります。
条件分岐です。スクラッチの制御の場所にある、もし~なら、もし~なら~でなければ~、等です。
例えばある関数の数値が10になるまでは増加のプログラムを組み10になったら0まで減少するようにするときなどに利用できます。
条件分岐についてはまた次回以降で。

コメント