Discuss Scratch

Caffeine3860
Scratcher
69 posts

Scratchスクリプトクイズ

多種多様な回答が出ていて驚きです。
anyという指定があるのは意外です。
また「どれかの背景にする」ブロックもありましたね。
線形合同法は私にはわからない領域です・・・
全て動作を確認できたので正解とします。
honnkon
Scratcher
62 posts

Scratchスクリプトクイズ

abee wrote:

#2656
8ブロックです。
anyのところをどこかでコピーしてその欄にペーストすると((any)と())の部分を削減できますよ!
abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

「どこかでコピーしてその欄にペーストする」の意味がよくわからないので、画像やプロジェクトなどで教えてもらえますか。
分かりました。文字列をコピペすれば数字しか入れられないところでも文字列を入力できるということですね。

Last edited by abee (Oct. 7, 2023 07:48:51)

honnkon
Scratcher
62 posts

Scratchスクリプトクイズ

  問題
知っていると普通に便利です
(タイマー)
の代用を作りましょう。
↓ヒント(選択状態にすると見えるようになります)できればヒントを見たら回答の最初や最後にヒントを見たなどとお願いします。
2000年からの日数を利用します。1日は86400秒です。
tabakenn
Scratcher
100+ posts

Scratchスクリプトクイズ

上の問題に答えるわけではないですが…

#2661

sakura_neko wrote:

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


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

これは確率的には同様に確からしくないです。
最初の背景に依存して、どの背景になるかの確率が異なります。

実行した後に、最初の背景になっている確率は、
背景を [どれかの背景 v] にする // 他の背景に切り替わるので 1 * 0 + 0 * 1/3 = 0
背景を [どれかの背景 v] にする // 他の背景に切り替わるので 0 * 0 + 1 * 1/3 = 1/3
背景を [どれかの背景 v] にする // 他の背景に切り替わるので 1/3 * 0 + 2/3 * 1/3 = 2/9
背景を [どれかの背景 v] にする // 他の背景に切り替わるので 2/9 * 0 + 7/9 * 1/3 = 7/27
となります。
ひたすら実行すれば1/4 に近づき、影響は無視できるので、この話はどうでもいいのかもw
kouhei-1
Scratcher
1000+ posts

Scratchスクリプトクイズ

#2665

(2000年からの日数)
から色々引くんですかね…?
taiyo_a
Scratcher
100+ posts

Scratchスクリプトクイズ

#2665
回答…?
ちょっと適当です 間違ってるかも
ヒントは作品を作り終わった後に見ました。多分やろうとしてることは出題者さんの考え方と同じだと思う

Last edited by taiyo_a (Oct. 7, 2023 10:03:51)

honnkon
Scratcher
62 posts

Scratchスクリプトクイズ

#2668
普通に現在の秒が0に戻ると変なことになっちゃいますね…
でも2000年からの日数の使い方はいいですね!
ちょっと変な感じですけど…

Last edited by honnkon (Oct. 7, 2023 10:06:27)

honnkon
Scratcher
62 posts

Scratchスクリプトクイズ

↓ヒントその2
1スクリプトです。ポイントは最初に2000年からの日数を保存することです。
taiyo_a
Scratcher
100+ posts

Scratchスクリプトクイズ

#2665
少し無理がある回答 これもちょっと…
honnkon
Scratcher
62 posts

Scratchスクリプトクイズ

taiyo_a
Scratcher
100+ posts

Scratchスクリプトクイズ

一個目の解答、直しました。(多分)
sakura_neko
Scratcher
87 posts

Scratchスクリプトクイズ

#2666
あ、ほんとだ…
では背景を5枚にした代替案を出しておきます。(なぜ最初にこっちを思いつかなかったのか…)
背景を [5枚目の背景の名前 v] にする
背景を [どれかの背景 v] にする
[answer v] を (背景の[番号 v]:: looks)にする

#2665
[変数 v] を (2000年からの日数) にする
ずっと
[タイマー v] を ((((86400000) * ((2000年からの日数) - (変数))) を四捨五入) / (1000)) にする
end
これかな?本物のタイマーは小数点以下3桁のみ出るので調整をいれてます。
停止ボタンとか「再描画しない」定義の内部とかでない限り、このプログラムの実行と同時にタイマーをリセットすれば一致するはずです。
inoking
Scratcher
1000+ posts

Scratchスクリプトクイズ

sakura_neko wrote:

#2665
[変数 v] を (2000年からの日数) にする
ずっと
[タイマー v] を ((((86400000) * ((2000年からの日数) - (変数))) を四捨五入) / (1000)) にする
end
これかな?本物のタイマーは小数点以下3桁のみ出るので調整をいれてます。
停止ボタンとか「再描画しない」定義の内部とかでない限り、このプログラムの実行と同時にタイマーをリセットすれば一致するはずです。
タイマーは約 1/30 秒周期でしか更新されないことが分かっています。
このため、
この疑似タイマーを試せば分かりますが、
単純にループを回すだけではタイマーとは一致しません。
(0) 秒待つ
などでタイミングを合わせてやる必要があります。

四捨五入が必要かどうかはともかく、多分これで合っているでしょう。
sakura_neko
Scratcher
87 posts

Scratchスクリプトクイズ

#2675 @inokingさん、細かい補足ありがとうございます。
さらに細かい話ですが、私の検証した結果と合わせると、「タイマーは約 1/30 秒周期でしか更新されない」という表現より「タイマーは毎フレームでしか更新されない」という表現の方が正確かもしれないですね。
honnkon
Scratcher
62 posts

Scratchスクリプトクイズ

sakura_neko wrote:

#2674
[変数 v] を (2000年からの日数) にする
ずっと
[タイマー v] を ((((86400000) * ((2000年からの日数) - (変数))) を四捨五入) / (1000)) にする
end

inoking wrote:

#2675
単純にループを回すだけではタイマーとは一致しません。
#2674
正解です。一応代替的なものなので四捨五入はいらないのが想定解です。

#2675
そこまで厳密にやるとさすがに難易度が上がってしまうので…
なのでそこは目を瞑っていただいて…
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

問題です。
目標物が自分より左にいたら左を向いて、自分より右にいたら右に向いて、かつ目標物に0.1秒で行くように下のスクリプトの続きを作って下さい。
@greenflagがクリックされたとき

制限
動きブロックしか使ってはいけません。
・続きのスクリプトには3ブロックしか使えません。
taiyo_a
Scratcher
100+ posts

Scratchスクリプトクイズ

#2678
「目標物」とは「『自分』とは別のスプライト」という意味でしょうか?
honnkon
Scratcher
62 posts

Scratchスクリプトクイズ

#2678
@greenFlag がクリックされたとき
回転方法を [左右のみ v] にする
[目的物 v] へ向ける
(0.1) 秒で[目的物 v]へ行く::motion
こんな感じでどうでしょう。
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

#2679

taiyo_a wrote:

#2678
「目標物」とは「『自分』とは別のスプライト」という意味でしょうか?
はい。そうですね。

Last edited by xiangyeng (Nov. 12, 2023 05:11:12)

Powered by DjangoBB