Discuss Scratch
- Discussion Forums
- » 日本語
- » Scratchスクリプトクイズ
- inoking
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
#660 は実にエレガントで
同じことを実現するのにも書き方でどうにでもなるという典型的な例ですね。
なお、
#659 が悪いというわけではありません。
トリッキーなところが一切ないので誰でも簡単に理解できるという利点があります。
同じことを実現するのにも書き方でどうにでもなるという典型的な例ですね。
なお、
#659 が悪いというわけではありません。
トリッキーなところが一切ないので誰でも簡単に理解できるという利点があります。
- kekelolo
-
Scratcher
500+ posts
Scratchスクリプトクイズ
トピ違いなので削除
Last edited by kekelolo (Jan. 3, 2020 09:36:19)
- abee
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
Scratchは文書による仕様が示されていない困った言語で、trueが1、falseが0になることも明示的に示されていません(ソースコードにはある)。
実際、1.4までは、設定言語により変化し、日本語の場合は「はい」「いいえ」の文字列が返されました。
したがって、将来もこれが使える保証はどこにもなく、なるべくそういうものに依存しない書き方が良いとする考えもあるかもしれません。
実際、1.4までは、設定言語により変化し、日本語の場合は「はい」「いいえ」の文字列が返されました。
したがって、将来もこれが使える保証はどこにもなく、なるべくそういうものに依存しない書き方が良いとする考えもあるかもしれません。
- inoking
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
そういう意味では #660 も真偽値を 1, 0 としている時点でトリッキーだと言えますね。
「真偽値が 1, 0 である前提とするのはよくない」と自分で提唱していたのを忘れていました
「真偽値が 1, 0 である前提とするのはよくない」と自分で提唱していたのを忘れていました

- wakisaka285
-
Scratcher
100+ posts
Scratchスクリプトクイズ
問題です。
使えないブロック
((1) から (16) までの乱数)を使って、0から15までの乱数を一行で作ってください。
使えないブロック
(() + ())
(() - ())
(() * ())
(() / ())
(() から () までの乱数)//1から16のみOK
([] と [])
([ v] \( () \)::operators)
<真偽値ブロック::custom>
演算カデコリ以外のブロック::operators
- mituki1729
-
Scratcher
19 posts
Scratchスクリプトクイズ
問題です。((1) から (16) までの乱数)を使って、0から15までの乱数を一行で作ってください。使えないブロック
(() + ())
(() - ())
(() * ())
(() / ())
(() から () までの乱数)//1から16のみOK
([] と [])
([ v] \( () \)::operators)
<真偽値ブロック::custom>
演算カデコリ以外のブロック::operators
(((1) から (16) までの乱数)を(16)で割った余り)ですか?
- KYHID
-
Scratcher
99 posts
Scratchスクリプトクイズ
ループできる回数とか..?
例)
例)
@greenFlag がクリックされたとき :: events :: hat
[TurboThresold v] を [200] にする
[Counter v] を [0] にする
[StartTimer v] を (タイマー) にする
<((タイマー) - (StartTimer)) > [1]> まで繰り返す
[Counter v] を (0) ずつ変える
end
もし <(Counter) > (TurboThresold)> なら
[ターボモードだよ!] と言う
でなければ
[ターボモードじゃないよ!] と言う
end
Last edited by KYHID (Feb. 8, 2020 05:59:04)
- Poteto143
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
問題
任意の地点にある二つのスプライト間の直線距離がn以下なら“Yes”、そうでなければ“No”を吹き出しに表示するプログラムを作って下さい。
ただし10≦n≦200とします。また、
上記を守れば、どんなプログラムでもかまいません。頑張って下さい!
任意の地点にある二つのスプライト間の直線距離がn以下なら“Yes”、そうでなければ“No”を吹き出しに表示するプログラムを作って下さい。
ただし10≦n≦200とします。また、
([ v] までの距離)は使えないものとします。
上記を守れば、どんなプログラムでもかまいません。頑張って下さい!
Last edited by Poteto143 (Feb. 8, 2020 05:10:15)
- kakurenbo
-
Scratcher
500+ posts
Scratchスクリプトクイズ
問題
任意の地点にある二つのスプライト間の直線距離がn以下なら“Yes”、そうでなければ“No”を吹き出しに表示するプログラムを作って下さい。
ただし10≦n≦200とします。また、([ v] までの距離)は使えないものとします。
上記を守れば、どんなプログラムでもかまいません。頑張って下さい!
もし <([平方根 v] \( ((((x1) - (x2)) * ((x1) - (x2))) + (((y1) - (y2)) * ((y1) - (y2)))) \)) > (n)> なら
[No] と言う
でなければ
[Yes] と言う
end
Last edited by kakurenbo (Feb. 8, 2020 05:30:09)
- KYHID
-
Scratcher
99 posts
Scratchスクリプトクイズ
愚直に三平方の定理で
定義 直線距離判定 (n)(Sprite1_x)(Sprite1_y)(Sprite2_x)(Sprite2_y)もしくは….
もし <((n)*(n)) > ((((Sprite2_x)-(Sprite1_x))*((Sprite2_x)-(Sprite1_x)))+(((Sprite2_y)-(Sprite1_y))*((Sprite2_y)-(Sprite1_y))))> なら
[Yes] と言う
でなければ
[No] と言う
end
//Sprite1で再描画せず実行すること
定義 直線距離判定 (n)
[距離 v] を [0] にする
[元の角度 v] を (向き) にする
[Sprite2 v] へ向ける
<[Sprite2 v] に触れた> まで繰り返す
(1) 歩動かす
[距離 v] を (1) ずつ変える
end
(() - (距離::variables)) 歩動かす
(元の角度) 度に向ける
もし <(n) > (距離::variables)> なら
[Yes] と言う
でなければ
[No] と言う
end
Last edited by KYHID (Feb. 8, 2020 05:53:07)
- KYHID
-
Scratcher
99 posts
Scratchスクリプトクイズ
単純に「触れた」を使うだけでは中心同士の距離が判定できませんね。そうですね!盲点でした。1pxのコスチュームとかに互いを変えればいいでしょうか…?
- inoking
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
「画面を再描画せずに実行」状態でもコスチュームの変更は有効のようですが
互いにコスチュームを変えるとなるとタイミングが揃わないので
別スプライトを作って追従させるとよいかもしれません。
互いにコスチュームを変えるとなるとタイミングが揃わないので
別スプライトを作って追従させるとよいかもしれません。
- mi9g0n
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
半径を距離分の円をペンで描画して、最初のスプライトがその色に触れたのなら円の中だから距離の内なのでYESかなぁ、という考え方です。









