Discuss Scratch

pupon
Scratcher
100+ posts

Scratchスクリプトクイズ

#2641
正解です。僕の想定解(Hard)よりもブロックが少なくてすごいです…(僕は20blocks)

Last edited by pupon (April 9, 2023 07:33:10)

Doctor_Fe
Scratcher
100+ posts

Scratchスクリプトクイズ

すぐ思いつくのはこんなところでしょうか。本当はもう少しブロックを減らしたかったです。
max<minの場合は考慮していません。
min==maxの場合はOKなはずです。
(((min)*<(n)<(min)>)+(((n)*<<<(n)<(min)>ではない>かつ<<(max)<(n)>ではない>>)+((max)*<(max)<(n)>)))
pupon
Scratcher
100+ posts

Scratchスクリプトクイズ

#2643
正解です。正解者が二人出たので想定解を出します。

<Easy>
12blocks
もし<(n)<(min)>なら
[n v]を(min)にする
end
もし<(n)>(max)>なら
[n v]を(max)にする
end

<Hard>
20blocks
[n v]を((((n)+(max))-([絶対値 v] \( ((n)-(max)) \) ))/(2))にする
[n v]を((((n)+(min))+([絶対値 v] \( ((n)-(min)) \) ))/(2))にする
Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

もっと省ブロックな回答を思いつきました。
[n v] を (<(max) < (n)> * ((max) - (n))) ずつ変える
[n v] を (<(n) < (min)> * ((min) - (n))) ずつ変える
で16ブロックです。
pupon
Scratcher
100+ posts

Scratchスクリプトクイズ

#2645
なるほど、
[n v]を((n)+(...))にする

[n v]を(...)ずつ変える
にすることでブロック数が減ったんですね。すごい…
yuzu-kun
Scratcher
100+ posts

Scratchスクリプトクイズ

(数)
に何らかの数が入っていたとします。それを「演算」ブロックを使わずに四捨五入する方法はなんでしょう

追記
数は正の数とします。

Last edited by yuzu-kun (April 9, 2023 11:57:35)

newmomizi_txt
Scratcher
1000+ posts

Scratchスクリプトクイズ

#2647
簡単な例でいえば、
[別の変数 v] を (0) にする
(数) 回繰り返す
[別の変数 v] を (1) ずつ変える
end
[数 v] を (別の変数) にする
とかでしょうか。
簡単な例とか書いちゃったけど他に答えが思い浮かばない

Last edited by newmomizi_txt (April 9, 2023 10:28:56)

Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

空のコスチュームを用意して、
[数 v] を (100) ずつ変える
大きさを (数) % にする
[数 v] を (大きさ) にする
[数 v] を (-100) ずつ変える
を実行するとか…?
コスチュームによって動きが制限されてしまうので「スクリプト」クイズの答えとしては不適切かもしれませんが。
hirayuu1414
Scratcher
500+ posts

Scratchスクリプトクイズ

#2639
確認してみたところ、正解のようです。
yuzu-kun
Scratcher
100+ posts

Scratchスクリプトクイズ

#2648
正解です!
pupon
Scratcher
100+ posts

Scratchスクリプトクイズ

久しぶりにクイズです。
Easy
0以上の整数が入った変数
(a)
があります。ここで、
((a)を(2)で割った余り)
を求めるプログラムを作ってください。

Hard
0以上の整数が入った変数
(a)
(b)
があります。このとき、
((a)を(b)で割った余り)
を求めるプログラムを作ってください。


ブロックの制限
演算ブロックは使用禁止です。
他は特に制限はありません。


想定解は正解者が二人以上でたら発表します。
ちなみに想定解のブロック数は、Easy:10ブロック Hard:15ブロック

Last edited by pupon (June 19, 2023 09:59:31)

akinarin
Scratcher
500+ posts

Scratchスクリプトクイズ

>>#2652
Hardの解答です
sakura_neko
Scratcher
87 posts

Scratchスクリプトクイズ

#2652解答します。
pupon
Scratcher
100+ posts

Scratchスクリプトクイズ

#2653 #2654
どちらも正解です!
二人とも発想がめっっっっっちゃすごいです…僕には思いつきませんでした

正解者が二人出たので想定解を発表します。
https://scratch.mit.edu/projects/867006636/
Caffeine3860
Scratcher
69 posts

Scratchスクリプトクイズ

問題
(() から () までの乱数)
を使わずに、
1~4までの乱数を出力するスプリクトを作ってください。

(ルール)
・1~4のどれかが必ず出るようにしてください。
・同様に確からしくしてください。

想定解は20ブロックです。(出力スクリプトのみ)
Jinenjo_000
Scratcher
100+ posts

Scratchスクリプトクイズ

>> #2656

[どこかの場所 v] へ行く
[乱数 v] を (((x座標) を (4) で割った余り)+(1)) にする

でどうでしょうか。5ブロックです。
Caffeine3860
Scratcher
69 posts

Scratchスクリプトクイズ

#2657
正解です。
乱数ブロックの他にランダム性があるブロックが
[どこかの場所 v] へ行く
だと気づくのがポイントでした。
(私の場合いちいちもし・・・ならを使っていたのでブロック数が多くなりました)
abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

#2656
8ブロックです。
newmomizi_txt
Scratcher
1000+ posts

Scratchスクリプトクイズ

#2656
[乱数 v] を ((((48271) * (乱数)) + (1)) を (2147483647) で割った余り) にする
(((乱数) を (4) で割った余り) + (1)) と言う
解答します(9ブロック)。線形合同法という乱数を自力で実装しただけです。
そのうちXorShift実装する人も出てきそう

Last edited by newmomizi_txt (June 20, 2023 12:17:07)

sakura_neko
Scratcher
87 posts

Scratchスクリプトクイズ

#2656
事前に背景を4枚にしておくことを許容すれば、4ブロックです。



「どれかの背景にする」ブロックを実行した際、必ず「その時点の背景とは異なる背景に切り替わる」のは意外でした。

Powered by DjangoBB