こちらは、スクラッチの「演算」ブロックの中にある「◇かつ◇」ブロックの使い方を、詳しく徹底解説しています!
「◇かつ◇」ブロック
「◇かつ◇」ブロックは、指定した2つの条件で両方とも満たすときにtrueを、そうでないときにfalseを返します。
「真(true)」か「偽(false)」で返すブロックを「真偽ブロック」といいます。
「真偽ブロック」は、六角形の形をしており、真(True)または、偽(False)のいずれかの「条件・状態」を持つブロックです。(Scratchのブロックの種類と役割について)
「◇かつ◇」ブロックでは、2つの真偽ブロックが入り、どちらも「真(true)」を返すことで、「◇かつ◇」ブロックも「真(true)」を返します。
「◇かつ◇」ブロックの真偽パターン
「◇かつ◇」ブロックの真偽パターンをまとめると、以下の通りです。
パターン | 真偽ブロックA | 真偽ブロックB | 「◇かつ◇」ブロック |
1 | 真(True) | 真(True) | 真(True) |
2 | 真(True) | 偽(false) | 偽(false) |
3 | 偽(false) | 真(True) | 偽(false) |
4 | 偽(false) | 偽(false) | 偽(false) |
このようにパターン1のみしか、「◇かつ◇」ブロックは、「真(true)」を返しません。
「◇かつ◇」ブロックの中の状態を確認したい場合は、「◇かつ◇」ブロックをクリックしましょう。
クリックすると、「◇かつ◇」ブロックの中の状態を確認できます。
「◇かつ◇」ブロックの使い方
それでは、「◇かつ◇」ブロックの使い方を見ていきましょう。
こちらは、スプライトが端についたら向きを変えてひたすら歩くプログラムです。
「緑の旗が押されたとき」ブロックを使って、緑の旗がクリックされたときに、プログラムが開始します。
基本は、「ずっと」ブロックの中で「〇歩動かす」ブロックを使って10歩歩かせています。
「もし◇なら」ブロックでは、「◇かつ◇」ブロックを使って、以下の2つの条件を入れています。
- スプライトが端に触れたかどうか
- スプライトの向きが90度かどうか
もしも、スプライトが端に触れたとき、向きが90度であれば、「〇へ向ける」ブロックで-90度向くようにプログラムしています。
2つ目の「もし◇なら」ブロックでも、「◇かつ◇」ブロックを使って、以下の2つの条件を入れています。
- スプライトが端に触れたかどうか
- スプライトの向きが-90度かどうか
こちらは、先ほどとは逆で、向きが90度であれば、90度向くようにプログラムしています。
両方とも「〇歩動かす」ブロックを使って、10歩歩かせているのは、端に触れたときに10歩歩かせて、「◇かつ◇」ブロックの条件を満たさないためです。
もっとも、「〇歩動かす」ブロックが必要なのは、最初の「もし◇なら」ブロックのみで、2つ目の「もし◇なら」ブロックの中に入れなくても同様の処理で動きます。
実際に、緑の旗をクリックしてみます。
右端にスプライトが触れると、-90度を向き、左向きに歩きました。
更に、左端にスプライトが触れると90度を向き右向きに歩きます。
演算ブロック一覧
「演算」ブロックには、以下の11個のブロックが用意されています。
- 真偽ブロック・・・7つ
- 値ブロック・・・11つ
ブロックの色は、黄緑色で統一されています。
演算ブロック | 動作 |
---|---|
〇+〇(足し算) 指定した2つの数値を足し算した結果を返す |
|
〇-〇(引き算) 指定した2つの数値を引き算した結果を返す |
|
〇*〇(掛け算) 指定した2つの数値をかけ算した結果を返す |
|
〇/〇(割り算) 指定した2つの数値を割り算した結果を返す |
|
〇から〇までの乱数 指定した2つ数値の範囲でランダムな数値を返す |
|
〇<〇(小なり) 左の値が右の値より小さいときにtrueを、そうでないときにfalseを返す |
|
〇=〇(イコール) 左の値と右の値が同じときにtrueを、そうでないときにfalseを返す |
|
〇>〇(大なり) 左の値が右の値より大きいにtrueを、そうでないときにfalseを返す |
|
◇かつ◇ 指定した2つの条件で両方とも満たすときにtrueを、そうでないときにfalseを返す |
|
◇または◇ 指定した2つの条件でどちらか一方を満たすときにtrueを、そうでないときにfalseを返す |
|
◇ではない 指定した条件がtrueであればfalseを、そうでないときにtrueを返す |
|
〇と〇(文字列結合) 2つの値を連結して、くっつけた値を返す |
|
〇の〇番目の文字 指定した文字列から指定した番号の文字を返す |
|
〇の長さ(文字列長さ) 指定した文字列の文字数を返す |
|
〇に〇が含まれる 指定した文字列に指定した文字列が含まれるときにtrueを、含まれていないときにfalseを返す |
|
〇を〇で割った余り 1つめの値を2つめの値で割ったときの余りを返す |
|
〇を四捨五入 指定した数値を四捨五入した値を返す |
|
〇の▢(関数) 指定した数値を指定した数学関数で演算した値を返す |