Between演算!ゾーンに入ると色が変わるネコ

Between演算!ゾーンに入ると色が変わるネコ
ok-scratch

スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。

スクラッチには「◯から◯の間なら」というブロックがありません。ANDと2つの比較演算子を組み合わせて範囲判定を作る方法を、カラフルに光るデモで紹介します。PythonやJavaScriptにも通じる基本テクニックです。

さぁ、スクラッチでナニ作る!?

ANDで2つの比較演算子を繋ぐだけで「◯から◯の間」という範囲判定が完結する設計が効いている。Scratchには専用の範囲チェックブロックが存在しないが、「-100より大きい」かつ「100より小さい」という2本の不等号をANDで結ぶだけで境界込みの判定が正確に作れる。この構造はPythonやJavaScriptでも形がまったく同じで、ここで覚えておくと後の言語学習で即座に使えるパターンになる。どう組むのか、作り方を見ていこう。

動画で見てみよう

ok-scratch ok-scratch
チャンネル登録して応援よろしく!チャンネル登録する

チュートリアルの元になった作品

今回の目標

スプライトが左から右へ移動するデモを作ります。x座標が-100から100の間に入ったときだけ色の効果が変わる仕組みをANDと2つの比較演算子で実装します。

スターター作品をリミックスしよう

このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード

このチュートリアルでは作者さんの実装方法を尊重して作ってますが、最低限の改善をしてます。(参考作品と同じものが完成するわけではない点はご注意)

#1左から右へ移動

ok-scratch ok-scratch
旗をクリックすると、スプライトが画面の左端から右端まで5秒かけてスーッと動くよ。この動きがあるから、次のステップで「x座標が◯から◯の間に入った瞬間」を目で確認できるんだ。

準備

スプライト「ビトウィーン」を開く

ビトウィーンビトウィーン
スプライトについて
x座標が-100から100の間にあるかを判定し、範囲内なら色の効果をランダムに変化させるデモ用スプライト
どんな役割か
スプライトが左から右へ5秒かけて動くよ!x座標が-100から100の間に入ったとき、色の効果がランダムに変化するのが見えるよ。「◯から◯の間なら」という条件をANDと2つの比較演算子で作る方法を視覚的に確認できるよ!

実装

step-0

まず画像効果をリセットしてから、座標(-300, 0)にワープさせる。そこから動き( ) 秒でx座標を ( ) に、y座標を ( ) に変えるで5秒かけて(300, 0)まで滑らかに移動するよ。-300から300まで横一直線に動く感じだね。

確認プレビューしておこう 確認プレビューしておこう
旗を押すとビトウィーンが左端から右端へスーッとグライドしたね。

#2ANDで範囲判定

ok-scratch ok-scratch
ここからが本題。x座標が-100から100の間にあるときだけ色が変わる仕組みを作るよ。Scratchには「◯から◯の間なら」っていうブロックがないから、ANDで2つの不等号を組み合わせないと片側しかチェックできず、範囲外でも反応しちゃうんだよ。
step-1

ずっとループの中で、演算( ) かつ ( )を使って2つの不等号を組み合わせるだけ。「-100 < x座標」かつ「x座標 < 100」、この両方が成り立てば-100から100の間にいるってことだよね。条件に当てはまったら、色の効果を1〜10のランダムな値で変化させるよ。

ちなみにこの判定だと、x座標がぴったり-100やぴったり100のときは範囲外扱いになるよ。「<(より小さい)」を使ってるから、境界の値は含まれないってこと。

ok-scratch ok-scratch
「◯から◯の間」をANDと2つの不等号で表現するテクニック、これってプログラミングの世界ではめちゃくちゃ定番のパターンなんだ。PythonでもJavaScriptでも、考え方はまったく同じ。Scratchでこの感覚をつかんでおけば、将来テキストベースの言語に進んだときもスムーズに理解できるよ。

確認プレビューしておこう 確認プレビューしておこう
x座標が-100から100の間にいるときだけ、色の効果がランダムに変化するようになったね。

まとめ

ANDと比較演算子を2本組み合わせるだけで、こんなにスッキリ範囲判定が作れるんだね。Scratchには「◯から◯の間」ブロックがないけど、この小技を覚えたらもう困らないよ。PythonやJavaScriptでもまったく同じ書き方をするから、将来テキストコーディングを始めたときにもバッチリ使えるよ!

ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!