Discuss Scratch

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

実際に試してから投稿することをおすすめします。
yuito2013
Scratcher
100+ posts

Scratchスクリプトクイズ

⬆️(3505#)を投稿されたときに作ってた回答集(正解・不正解)リンク変数の数を想定解にを含み忘れてしまいました。そのため、変数抜きでカウントしました。あと回答の変数、常時実行プログラムは数に含んでいません。まだまだ回答を受け付けています!
23hayabusa
Scratcher
34 posts

Scratchスクリプトクイズ

 問題を出させて頂きます。任意の定数
(x)
にある数が入っているとします。その変数xが正の数の時は
(正の数?)
がtrue、xが負の数の時はfalseになるスクリプトを最小ブロック数で実現してください。
 ただし、
<[] contains []?>
if <> then

end

if <> then

else

end
の3つのブロックは使ってはいけません。ここでは、0も正の数に含めるとします。

Last edited by 23hayabusa (July 18, 2025 06:57:05)

dragon_sub
Scratcher
11 posts

Scratchスクリプトクイズ

#3507
set [正の数? v] to <<(x) > [0]> or <(x) = [0]>>

Last edited by dragon_sub (July 18, 2025 07:11:02)

ef_cudaran
Scratcher
92 posts

Scratchスクリプトクイズ

[正の数? v] を <(x) = ((x)の[絶対値 v] ::operators)>にする
tsmcoder
Scratcher
500+ posts

Scratchスクリプトクイズ

#3508

dragon_sub wrote:

set [正の数? v] to <<(x) > [0]> or <(x) = [0]>>
これでブロック数を削減できます。#3511により撤回
set [正の数? v] to <(x) > [-1]>

Last edited by tsmcoder (July 18, 2025 07:24:43)

Ke0
Scratcher
1000+ posts

Scratchスクリプトクイズ

#3510
それでは負の小数が検討できません
dragon_sub
Scratcher
11 posts

Scratchスクリプトクイズ

#3507
set [正の数? v] to <((1) / (x)) > [0]>

x=0のときInfinityになり、それが0より大きいことを利用しました。

Last edited by dragon_sub (July 18, 2025 07:46:20)

Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#3507
set [正の数? v] to <[.*] < (x)>
23hayabusa
Scratcher
34 posts

Scratchスクリプトクイズ

ef_cudaran wrote:

[正の数? v] を <(x) = ((x)の[絶対値 v] ::operators)>にする
これが私が用意していた正解です。
ですが、

Catapult- wrote:

#3507
set [正の数? v] to <[.*] < (x)>

dragon_sub wrote:

set [正の数?] to <((1) / (x)) > [0]>

も正しいことがわかったので、正解はこの3つにしておきます。
dragon_subさん、掲載遅れてすみません。

Last edited by 23hayabusa (July 20, 2025 10:03:47)

tuneninemuihito
Scratcher
57 posts

Scratchスクリプトクイズ

色々と間違ってました、本当にすみません。修正しました…

任意のデータが複数個入ったリストを、逆順に並び替えるプログラムを1スクリプト完結で作成して下さい。
但し使用可能なブロックは、
()回繰り返す
end

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

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

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

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

([list v]の( )番目 :: list)
が一回のみ使用できます。
尚、の()番目等にlast等の文字を使用してはいけません。(必要であれば(リストの(リストの長さ)番目)などを使用して下さい)
何かしらの区切り文字等を使用する場合は_を使用して下さい。

Last edited by tuneninemuihito (July 22, 2025 14:45:52)

U-Y-Scratch
Scratcher
500+ posts

Scratchスクリプトクイズ

#3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
tuneninemuihito
Scratcher
57 posts

Scratchスクリプトクイズ

U-Y-Scratch wrote:

#3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
いいえ、データの入っているリストをそのまま使用して下さい
U-Y-Scratch
Scratcher
500+ posts

Scratchスクリプトクイズ

tuneninemuihito wrote:

U-Y-Scratch wrote:

#3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
いいえ、データの入っているリストをそのまま使用して下さい
分かりました。
yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

#3515
リストに入っているデータを取得する方法が無いように見えるが、値を入れ替える方法は存在するのか?
長さ2のリストで考えてみても値を入れ替える方法が思いつかない…
(任意のデータの定義不足を疑う)

Last edited by yucca42 (July 22, 2025 13:08:45)

ef_cudaran
Scratcher
92 posts

Scratchスクリプトクイズ

もしも「番目」を使ってもいいという条件なら
([list v]の長さ::list)を[list v]に追加する
([list v]の([list v]の長さ::list)番目)回繰り返す
[list v]の([list v]の長さ::list)番目に([list v]の([list v]の([list v]の長さ::list)番目)番目)を挿入する
[list v]の([list v]の([list v]の長さ::list)番目)番目を削除する
[list v]の(1)番目に()を挿入する
end
([list v]の([list v]の長さ::list)番目)回繰り返す
[list v]の(1)番目を削除する
end
[list v]の([list v]の長さ::list)番目を削除する//忘れてました。
こんな感じになりますね…(19blocks)
対応するのは恐らく99999項目までです。

Last edited by ef_cudaran (July 22, 2025 14:46:19)

tuneninemuihito
Scratcher
57 posts

Scratchスクリプトクイズ

本当にごめんなさい、解答案にミスがあって色々おかしくなってました。
修正しましたのでご確認お願いします。
ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

tuneninemuihito wrote:

色々と間違ってました、本当にすみません。修正しました…

任意のデータが複数個入ったリストを、逆順に並び替えるプログラムを1スクリプト完結で作成して下さい。
但し使用可能なブロックは、
()回繰り返す
end

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

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

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

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

([list v]の( )番目 :: list)
が一回のみ使用できます。
尚、の()番目等にlast等の文字を使用してはいけません。(必要であれば(リストの(リストの長さ)番目)などを使用して下さい)
何かしらの区切り文字等を使用する場合は_を使用して下さい。

https://scratch.mit.edu/projects/1157625312/
条件に沿わないので今回は答えにならないと思いますが
こういう方法があるようです。トリッキーで面白い。
finalbacon
Scratcher
100+ posts

Scratchスクリプトクイズ

出題します。

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

【くわしい説明】
・「線でつながっている」というのは、なんとなくでOKです。見た人が「まぁ、線でつながっているな」と思えるようなものならセーフです。
 ↳とは言っても、「画面全体を覆い尽くして線でつながっていると言い張る」のはNGとします。
・「線」は、どんなものでもOKです。曲線でも、折れ線でもOKです。(ただし模範解答は直線です。)
・有限時間内に終わるものでないといけません。逆に言えば、有限時間内に終わるならいくら時間がかかってもOK。
・-240≦x1≦240、-240≦x2≦240、-180≦y1≦180、-180≦y2≦180です。大雑把に言えば、「点は画面内に収まる」です。
・スプライト数、ブロック数の指定はありません。自由です。

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


そんなのカンタンだよ!と思った人は、「1スプライトだけ」「ペン不使用」「コスチューム不使用」などの縛りにチャレンジしてみてください。
(コスチューム不使用は私にはできません…)

Last edited by finalbacon (July 23, 2025 00:42:59)

rrrrrrrrrrhhhhht
Scratcher
100+ posts

Scratchスクリプトクイズ

まず、1と2とペンの3つのスプライトを作って、「ペン」に
when green flag clicked
go to [1 v]
broadcast [メッセージ1 v]
go to [2 v]

when I receive [メッセージ1 v]
repeat until <touching [2 v] ?>
create clone of [自分自身 v]
end
の両方を作ればできると思います。

Last edited by rrrrrrrrrrhhhhht (July 23, 2025 00:48:41)

Powered by DjangoBB