Discuss Scratch

ef_cudaran
Scratcher
95 posts

Scratchスクリプトクイズ

#2561

@greenflag がクリックされたとき
[リスト v] のすべてを削除する::list
タイマーをリセット
[メッセージ1 v] を送る
(タイマー) と言う

[メッセージ1 v] を受け取ったとき
(0) 秒待つ//追加
[B] を [リスト v] に追加する

[メッセージ1 v] を受け取ったとき
[A] を [リスト v] に追加する

でどうですか。検証もしました(吹き出し部分は0)。ですが、

[メッセージ1 v] を送る

の部分が “送って待つ” であれば違うかもしれません。
abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

すみません。
[メッセージ1 v] を送って待つ
が正しいです。修正します。

Last edited by abee (March 21, 2023 00:32:13)

tabakenn
Scratcher
100+ posts

Scratchスクリプトクイズ

[メッセージ1  v] を受け取ったとき
[A] を [リスト v] に追加する
[B] を [リスト v] に追加する

[メッセージ1 v] を受け取ったとき
[A] を [リスト v] に追加する
屁理屈回答です!AABでもABAでもABの順に追加されています!

Last edited by tabakenn (March 20, 2023 15:31:16)

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

なるほど、問題が不十分だったのでさらに追加します。すみません。

Last edited by abee (March 20, 2023 15:34:53)

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

2日経ったので想定解を書きます。
@greenflag がクリックされたとき
[リスト v] のすべてを削除する::list
タイマーをリセット
[メッセージ1 v] を送って待つ
(タイマー) と言う

[メッセージ1 v] を受け取ったとき
(1) 回繰り返す
end
[B] を [リスト v] に追加する

[メッセージ1 v] を受け取ったとき
[A] を [リスト v] に追加する
このように並行動作するスクリプトの実行順を変えたい(他のスクリプトに処理を譲りたい(イールドしたい))とき、
() 秒待つ
を使うことが多いと思いますが、これだと切り替え(コンテクストスイッチ)に約0.033秒かかってしまいます。
これに対して、空ループを使うとスイッチにかかる時間を極小にできるようです。その際、繰り返し回数を0回にするとスイッチしないことがあるので最低1回は必要と思います。
taNup0n
Scratcher
500+ posts

Scratchスクリプトクイズ

このような条件を満たす、リストを出力するスクリプトを書いてください(a,b,c,dは定数)
  • リストはa行
  • リストは、0と1のみで構成されたb文字の文字列
  • このような規則で、最初の行から最後の行に必ずたどり着ける

     
  •   最初にリストの最初の行のうちで、0であるもじをランダムに、選ぶ
     
  •   文字数を+-1する、行数を+-1するの操作のみで、c行先に0であるますを通らずにいくルートを1つ(ランダム)に選ぶ(このとき現在の行より前に行ってはいけない)
  • リストのなかに自身が0かつその前後左右のうち少なくとも三つが0である

つまり枝分かれが有り、「運ゲー」にならない強制スクロール迷路を自動生成してください。
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

@greenflagがクリックされたとき
[クローンされた回数 v] を (0) にする
x座標を (-200) 、y座標を ((-180) から (180) までの乱数) にする
[クローンする回数 v] を [] にする//ここの[]の値を考えて下さい
(クローンする回数) 回繰り返す
[自分自身 v] のクローンを作る
end
x座標を ((クローンされた回数) * (10)) ずつ変える//これだと滑らかには動きませんがわかりやすくするためです:D
もし <(x座標) = [200]> なら
[正解!] と言う


でなければ
[不正解…。] と言う
end
クローンされたとき
[クローンされた回数 v] を [1] ずつ変える
では問題です‼️上のようなスプライトを組んだスプライトに「正解!」と言わせるには 変数“クローンする回数” の値を何にすればいいでしょう。
(※この問題で2つの変数が出てきましたが、どちらの変数も「すべてのスプライト用」です‼️
あと、上のスクリプトを組んだスプライトしかいないと想定してください‼️
それともう1つ、未公開スクリプトはありません‼️)

(超簡単な問題ですよ‼️)

Last edited by xiangyeng (March 26, 2023 08:51:42)

oira-edu
Scratcher
100+ posts

Scratchスクリプトクイズ

>>#2568
0ですか?
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

#2569

違います。
それだとx座標が-200のままになり、x座標が200ではないのでスプライトは「不正解…。」と言ってしまいます。
abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

#2568
それぞれの変数の種類もお願いします。それがないと答えが決まりません。
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

#2571

そのスクリプトを組んだスプライトしかいません。あと、どちらの変数も「すべてのスプライト用」です。(未公開スクリプトとかはないので大丈夫です)

Last edited by xiangyeng (March 26, 2023 08:44:37)

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

「クローンされた回数」が「このスプライトのみ」だと、正解なしになると思います。
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

abee wrote:

「クローンされた回数」が「このスプライトのみ」だと、正解なしになると思います。
すみません。ちょっと仕組みを勘違いしてました。Editしようと急いでたところです。
#2572をEditします。すみません‼️

Last edited by xiangyeng (March 26, 2023 08:44:22)

xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

xiangyeng wrote:

abee wrote:

「クローンされた回数」が「このスプライトのみ」だと、正解なしになると思います。
すみません。ちょっと仕組みを勘違いしてました。Editしようと急いでたところです。
#2572をEditします。すみません‼️
Editして編集しました‼️

xiangyeng wrote:

#2571

そのスクリプトを組んだスプライトしかいません。あと、どちらの変数も「すべてのスプライト用」です。(未公開スクリプトとかはないので大丈夫です)
正解はあります。この件について誠に反省しています。すみません‼️

Last edited by xiangyeng (March 26, 2023 08:45:23)

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

#2568をEditしないと問題を読む人はわからないと思います。
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

#2576

ご指摘ありがとうございます。
今すぐEditします‼️
Caffeine3860
Scratcher
69 posts

Scratchスクリプトクイズ

#2568
40。
単に-200+10x=200を考えました。
Caffeine3860
Scratcher
69 posts

Scratchスクリプトクイズ

問題 このようなスクリプトがあります。
⚑ がクリックされたとき
[list v] のすべてを削除する
(10) 回繰り返す
[変数 v] を ((0) から (1) までの乱数) にする
(変数) を [list v] に追加する
end
このスクリプトを一回操作し、リストに必ず 2 が追加される方法を考えてください。ただし、クリック(ドラッグ)した回数を1操作とします。
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

Caffeine3860 wrote:

#2568
40。
単に-200+10x=200を考えました。
正解です‼️まあ自分で簡単と言ってしまいましたからね…。
xiangyeng
Scratcher
100+ posts

Scratchスクリプトクイズ

Caffeine3860 wrote:

問題 このようなスクリプトがあります。

このスクリプトを一回操作し、リストに必ず 2 が追加される方法を考えてください。ただし、クリック(ドラッグ)した回数を1操作とします。
@greenflagがクリックされたとき
[list v]のすべてを削除する
(10) 回繰り返す
[変数 v] を ((0) から (1) までの乱数) にする
(変数) を [list v] に追加する
(last v) 番目( [list v] )を [2] で置き換える
end
こういうことですか?
(PC版でもモバイル版でもスペルがわかっていればlastと文字を入れれます。(が、「last」と入れたところに数字以外を入れやすいのはPC版。
モバイル版も数字を入れる場所を何回か押すとスペルが分かっていれば「last」と打てます)

Last edited by xiangyeng (March 26, 2023 22:28:46)

Powered by DjangoBB