Discuss Scratch

rrrrrrrrrrhhhhht
Scratcher
100+ posts

Scratchスクリプトクイズ

「Edit」が使えないのでこっちでいいますが、「Message①」は「メッセージ1」の間違いです。
finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

#3524
[go to]は“瞬間移動”なはずなので、それだとあいだが埋められません。不正解です。

また、今回の問題はコスチュームが重要になってくる(実際、この解答もコスチュームが「なにもない」だと成立しない)ので、プロジェクトを作っての投稿がおすすめです。

Last edited by finalbacon (July 23, 2025 00:51:45)

ef_cudaran
Scratcher
93 posts

Scratchスクリプトクイズ

(360×480)C2個のコスチュームをつくり、全通りの線分をかいて保存しておく。
与えられた2点に対応するコスチュームにする。

プロジェクトの最大容量を超えなければ上手くいくとおもいます。
finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

#3527
実現できれば正解ですね。さすがにコスチューム全部用意すべき、とは言いません。さすがに。
しかし、「点の座標とコスチュームの対応」のプログラムをどう実装するのかが不透明です。そこのプログラムを実際に作れるのなら、正解にしようと思います。
ef_cudaran
Scratcher
93 posts

Scratchスクリプトクイズ

#3528
コスチューム名を、全て12桁で
“ x₁y₁x₂y₂ ”
のようにし、座標の方は「まで繰り返す」でも使って0を挿入し3桁に。
joinを使って文字列にキャストしながら全部繋げればいけるかと…

Last edited by ef_cudaran (July 23, 2025 01:10:30)

finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

#3529
「数がマイナスのとき」と「数が小数のとき」に、0を挿入するだけだと対応しきれなくなります。よって不正解です。
ef_cudaran
Scratcher
93 posts

Scratchスクリプトクイズ

気づきませんでした。座標の方にxなら240、yなら180を足して、コスチューム名も同様に正の数にすれば、正解となりますかね…
取り消し。追記予定

追記
少なくともscratchの画面上では、x座標がある値のときと、それを四捨五入した値のときとで同じように表示されます。
そのため、上の操作のあとに彼らの各値を四捨五入すれば、見た目上は問題文の条件を満たしていることになります。
合っていますか?

Last edited by ef_cudaran (July 23, 2025 01:28:19)

finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

#3531
マイナスの場合は対応できていますが、小数が対象外になっていますね。例えば、170.9という数があった場合、足しても4桁のままなのでバグります。と思ったら取り消しが入りました。また取り消しが終わってから見ようと思います。

Last edited by finalbacon (July 23, 2025 01:18:17)

AmatsuTatsu
Scratcher
9 posts

Scratchスクリプトクイズ

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

みなさん、スクリプトクイズは、解法のアイデアを答えるのではなく、実行可能なスクリプト(コード)で示すのが筋ですので、ご協力をお願いします。完成していないアイデアを示すと、それは他の人へのヒントとなり、公平性を失うことにもなります。
ef_cudaran
Scratcher
93 posts

Scratchスクリプトクイズ

#3534を受けて。
変数“x1”,“x2”,“y1”,“y2”を与えられたとして、
[x1 v]を(((x1) + (240))を四捨五入)にする
[y1 v]を(((y1) + (180))を四捨五入)にする
[x2 v]を(((x2) + (240))を四捨五入)にする
[y2 v]を(((y2) + (180))を四捨五入)にする
<((x1)の長さ)=(3)>まで繰り返す
[x1 v]を((0) と (x1))にする
end
<((y1)の長さ)=(3)>まで繰り返す
[y1 v]を((0) と (y1))にする
end
<((x2)の長さ)=(3)>まで繰り返す
[x2 v]を((0) と (x2))にする
end
<((y2)の長さ)=(3)>まで繰り返す
[y2 v]を((0) と (y2))にする
end
コスチュームを(((x1)と(y1))と((x2)と(y2)))にする
整数座標の点を端点にもつ、一点のみの場合も含む全通り[(360×480)C2通り]の線分をコスチュームとして保存。
コスチューム名はそれぞれ、各端点のx座標には240、y座標には180を加えてから適宜0を挿入して3桁にし、x1,y1,x2,y2の順に区切り文字なしで結合したものにする。


これが私の回答です。

Last edited by ef_cudaran (July 23, 2025 02:04:59)

finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

#3533
ほぼ想定解(難しい方)です!(想定解はこれのコスチュームをただの線にしたものでした。)
#3535
正解「理論上は正解」です。コスチュームで全パターン対応するムリヤリ感、私は好きです。

Last edited by finalbacon (July 23, 2025 14:09:11)

monimai20518
New Scratcher
1 post

Scratchスクリプトクイズ

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

#3535, #3536
実際のコスチュームがなく、このままでは実行して検証できないので、正解とするには早いと思います。
tuneninemuihito
Scratcher
59 posts

Scratchスクリプトクイズ

finalbacon wrote:

出題します。
2つの点の座標(x1,y1),(x2,y2)があるとき、この2つの点を線でつなげるプログラムを作ってください。
↑この表現がわからない人は、「スプライトが2つあるとき、こいつらをつなげるプログラム」と思ってしまってOKです。

【使用禁止ブロック】
ペンを下ろす//これだけです。
頑張ってください。多分解答はいくつもあります。

背景色が一色固定の場合のみ有効ですが
黒いコスチュームと背景色のコスチューム(両方画面全体を十分に埋めれるサイズ)を用意して黒いコスチュームをスタンプした後に背景色のコスチュームを回転させて周りにスタンプすればできるのではと考えました
作ってみました

Last edited by tuneninemuihito (July 23, 2025 12:21:18)

tuneninemuihito
Scratcher
59 posts

Scratchスクリプトクイズ

finalbacon wrote:

出題します。
2つの点の座標(x1,y1),(x2,y2)があるとき、この2つの点を線でつなげるプログラムを作ってください。
↑この表現がわからない人は、「スプライトが2つあるとき、こいつらをつなげるプログラム」と思ってしまってOKです。

【使用禁止ブロック】
ペンを下ろす//これだけです。
頑張ってください。多分解答はいくつもあります。

もう一つ作ってみました
172800(480*360)マスを192個(個々が30*30を担当)のクローンで描画しています。
finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

#3539
正解です!発想がクールです。逆転の発想ってやつですね。
#3537
正解です!変数の割り当ての部分が、ズレが起こりにくそうで気に入ってます。
#3538
たしかにそうですね…一旦、「理論上は正解」にランクダウンさせておくことにします。
yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

3515を考えていたら良問を思いついた

1~(リストの長さ)までの数値が重複なしで入っているリストを、逆順に並び替えるプログラム作成して下さい。
簡単にするため、リストの長さの上限は10までとします。

使用するリストは1つのみで、
使用可能なブロックは、以下の5種類です。
()回繰り返す
end

[list v]の( )番目に[]を挿入する

[list v]の( )番目を削除する

([list v]中の[]の場所)

([list v]の長さ::list)

例1)
長さ3のリストに
[ 3, 1, 2 ] と入っていた場合、[ 2, 1, 3 ] のように逆順にします。

例2)
長さ6のリストに
[ 5, 1, 3, 6, 4, 2 ] と入っていた場合、[ 2, 4, 6, 3, 1, 5 ] のように逆順にします。


想定解は40ブロックです。
中規模になる気がするのでプロジェクトの提出がありがたいです。

Last edited by yucca42 (July 24, 2025 11:18:21)

ef_cudaran
Scratcher
93 posts

Scratchスクリプトクイズ

#3542
あらゆるリストに対応できるように作りました。
本当ですね…

Last edited by ef_cudaran (July 24, 2025 08:32:08)

yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

( [list v] の () 番目 :: list)
は使用禁止ブロックです。
これがこの問題の肝ですね…

Powered by DjangoBB