Discuss Scratch

ef_cudaran
Scratcher
93 posts

Scratchスクリプトクイズ

@greenFlagが押されたとき::hat events//17blocks
<<マウスが押された>ではない>まで待つ
ずっと
<マウスが押された>まで待つ
<<マウスが押された>ではない>まで待つ
コスチュームを((コスチュームの[番号 v]) + ((<(マウスのx座標) > (0)> - (0.5)) * (2)))にする
end
#3381と似ていますが、2行目によって旗が押された瞬間の誤作動を防止できます。
My browser / operating system: iPhone iOS 18.3.2, Safari 18.0, No Flash version detected

追記(3/30/2025 18:06):
ゼロ除算を含み美しくありませんが、6行目は
コスチュームを((コスチュームの[番号 v]) + ((マウスのx座標) / ((マウスのx座標)の[絶対値 v]::operators)))にする
とも置き換えることができます。
この場合、マウスのx座標が0のときページ送りはされず、
総ブロック数は変わらず17となります。

Last edited by ef_cudaran (March 30, 2025 09:54:13)

yuito2013
Scratcher
100+ posts

Scratchスクリプトクイズ

when green flag clicked//旗が抜けていたので修正しました
forever
if <<([絶対値 v] of (mouse x)::operators) = (mouse x)> and <<mouse down?> and <touching [マウスのポインタ v] ?>>> then //クリックが抜けてました。
wait until <not <mouse down?>>

switch costume to ((costume [number v]) + (1))

else
switch costume to ((costume [number v]) - (1))//20ブロックです
end
end

Last edited by yuito2013 (March 30, 2025 07:22:58)

_0xfffrog-
Scratcher
100+ posts

Scratchスクリプトクイズ

switch costume to ((costume [number v]) + (([abs v] of (mouse x)::operators) / (mouse x)))

if を使いません。

Last edited by _0xfffrog- (March 30, 2025 09:06:41)

taiyo_a
Scratcher
100+ posts

Scratchスクリプトクイズ

#3385
問題は

karaagekun_77 wrote:

ページの右半分をクリックすると次のコスチューム、左半分をクリックすると一つ前のコスチュームにするプログラム
です。
この問題はコスチュームを変更する部分のプログラムが主な考えどころではあると思いますが、
クリックされたことを判定するプログラムも問題に含まれるので、一応そこも書いた方がいいと思います。

Last edited by taiyo_a (March 30, 2025 09:45:50)

hizahige
Scratcher
55 posts

Scratchスクリプトクイズ

karaagekun_77 wrote:

問題です。ページの右半分をクリックすると次のコスチューム、左半分をクリックすると一つ前のコスチュームにするプログラム。
条件:一つのスクリプトにする。
when green flag clicked
ずっと
もし <<(マウスのx座標) > [0]> かつ <マウスが押された>> なら
次のコスチュームにする
end
もし <<(マウスのx座標) < [0]> かつ <マウスが押された>> なら
コスチュームを ((コスチュームの [番号 v]) - (1))にする
end
end
これでどうでしょうか。

Last edited by hizahige (March 31, 2025 02:50:41)

xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

#3387
それだと左を押したときに何も反応しません。
@greenFlagが押されたとき
ずっと
もし<<(マウスのx座標)>[0]>かつ<マウスが押された>>なら
次のコスチュームにする
end
もし<<(マウスのx座標)<[0]>かつ<マウスが押された>>なら
コスチュームを ((コスチュームの [番号 v]) - (1))にする
end
end
修正するとしたらこのような感じでしょうか?
sukeppy
Scratcher
6 posts

Scratchスクリプトクイズ

出題します。
問題
画面上に A, B の2つのスプライトがあります。
この2つのスプライトを結ぶ線分が、原点から負のy軸方向に垂直に延びる半直線と交差するかどうかを判定してください。
交差するなら変数 result に true を、しないなら false を代入し、プログラムを終了してください。

制約
・スプライトは A, B ともう1つまで。
・A, B, 背景にプログラムは書かない。
演算カテゴリのブロックを使用しない。

誤差について、
2線が同一直線上にあり、一部が重なっている場合、結果はどちらでもよい。
交点が線の端点である、または線の端点から±1ピクセルまでの位置にある場合、結果はどちらでもよい。
とします。
_0xfffrog-
Scratcher
100+ posts

Scratchスクリプトクイズ

#3389
この解答はリストで溢れています。

*@finalbaconさん, @Catapult- さんよりあとに完成しました。

Last edited by _0xfffrog- (March 31, 2025 22:51:36)

finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

karaagekun_77
Scratcher
37 posts

Scratchスクリプトクイズ

模範解答としては、(#3388)

xiangyeng wrote:

@greenFlagが押されたとき
ずっと
もし<<(マウスのx座標)>[0]>かつ<マウスが押された>>なら
次のコスチュームにする
wait until <mouse down?>
end
もし<<(マウスのx座標)<[0]>かつ<マウスが押された>>なら
コスチュームを ((コスチュームの [番号 v]) - (1))にする
wait until <mouse down?>
end
end
という、マウスが押された、ではないまで待つを入れられると良いと思います。
hizahige
Scratcher
55 posts

Scratchスクリプトクイズ

問題です。
ずっと

end
ブロックを代用してください。特にブロック指定とかはないです。想定解は2ブロックです。
Yukihisa2022
Scratcher
1000+ posts

Scratchスクリプトクイズ

<> まで繰り返す // 引数には何も入れない

end
引数がないと条件を満たすことはないので、「ずっと」と同じ動きをします。 1 block。
finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

((1)/(0))回繰り返す
end
放置はまだしていないので、もしかしたら途中で止まるかもしれません。
sukeppy
Scratcher
6 posts

Scratchスクリプトクイズ

#3390
#3391
#3392

正解です。
想定解は
when green flag clicked
を除いて、動き・調べる・変数カテゴリのみを使用し13ブロックです。
もう少し待つので、よければ考えてみてください。
Higuma_san
Scratcher
47 posts

Scratchスクリプトクイズ

#3394
[イベント v]を受け取ったとき

[イベント v]を送る
も2ブロックですね。
hizahige
Scratcher
55 posts

Scratchスクリプトクイズ

#3395
条件が実行されてもずっとブロックは繰り返しますね!しかしこの場合条件がないので永遠に繰り返しますが、想定解2blockなのでブロックが足りないですが正解!
#3396
想定解とは違いますが、確かにこれでもずっと繰り返すので正解!
#3398
想定解通りのパーフェクト正解!!

Last edited by hizahige (April 1, 2025 23:01:14)

shunshun16
Scratcher
26 posts

Scratchスクリプトクイズ

hizahige wrote:

問題です。
ずっと

end
ブロックを代用してください。特にブロック指定とかはないです。想定解は2ブロックです。
when green flag clicked
[ 変数 ] を [1]にする
もし <(変数) = [1]> なら
...
end
5ブロックです。

Last edited by shunshun16 (April 3, 2025 03:24:51)

ioqj
Scratcher
500+ posts

Scratchスクリプトクイズ

shunshun16 wrote:

(#3400)

hizahige wrote:

ずっと

end
ブロックを代用してください。特にブロック指定とかはないです。想定解は2ブロックです。
~省略~

5ブロックです。
それでは「ずっと」ブロックの代用にはできません。
Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#3394もう終わった問題ですが…
repeat [Infinity]
...
end
こんなのもあります。

Powered by DjangoBB