Discuss Scratch

milpoyxk
Scratcher
25 posts

Scratchスクリプトクイズ

#3418
https://scratch.mit.edu/projects/1160389019/
このような感じでしょうか?
attoma-ku
Scratcher
48 posts

Scratchスクリプトクイズ

#3418
https://scratch.mit.edu/projects/1160920760
milpoyxkさんのプログラム(#3421)を参考にしました。10ブロックです。

プログラムの実行前にリスト「り」に何かが入っていると上手く動作しないことがありますが、このプログラムを何度も実行することでは動作に影響を与えません。

Last edited by attoma-ku (April 12, 2025 07:31:40)

UZ15
Scratcher
2 posts

Scratchスクリプトクイズ

多分ちょっと誤差ある
https://scratch.mit.edu/projects/1160933046/
ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

milpoyxk wrote:

#3418
https://scratch.mit.edu/projects/1160389019/
このような感じでしょうか?

attoma-ku wrote:

#3418
https://scratch.mit.edu/projects/1160920760
milpoyxkさんのプログラム(#3421)を参考にしました。10ブロックです。

プログラムの実行前にリスト「り」に何かが入っていると上手く動作しないことがありますが、このプログラムを何度も実行することでは動作に影響を与えません。

双方の回答について、少なくともマウスポインターまでの距離が100.5のときに期待する動作をしません。
よって不正解です。

UZ15 wrote:

多分ちょっと誤差ある
https://scratch.mit.edu/projects/1160933046/
少なくともスプライトが原点にあり、マウスのx座標が-43で、マウスのy座標が90、マウスポインターまでの距離が99.74467404327912のときに10歩動いてしまいます。
よって不正解です。

Last edited by ito-noizi (April 12, 2025 09:56:22)

nposss
Scratcher
100+ posts

Scratchスクリプトクイズ

ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ


nposss wrote:

#3418
https://scratch.mit.edu/projects/1160958203/
これでどうでしょう
少なくともマウスポインターまでの距離が100.499のときに期待した動作をしません。
よって不正解です。

n回繰り返すのnが切り上げられて繰り返されるというのは誤りです。
また、「一回動くときにどれだけ時間がかかっても構いません」という条件から、定義ブロックfuncはなくても問題ないです。

Last edited by ito-noizi (April 12, 2025 11:00:03)

nposss
Scratcher
100+ posts

Scratchスクリプトクイズ

#3426
https://scratch.mit.edu/projects/1160958203/
純粋に中身を変えました。
分かりやすくするため15ブロック使用していますが9ブロックまで少なくできます
ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

過去ログが他の人からはわからなくなってしまうので、別プロジェクトとして共有してほしかったです……。
#3425の方法は想定解16blocksに酷似していました。

nposss wrote:

#3426
https://scratch.mit.edu/projects/1160958203/
純粋に中身を変えました。
分かりやすくするため15ブロック使用していますが9ブロックまで少なくできます
タイマーを使う方法ですね。「0.01xマウスポインターまでの距離」を行うことでの高速化も面白いです。

ですが、少なくともマウスポインターまでの距離が100のときも10歩歩いてしまいます。
よって不正解です。
もちろんこれはターボモードなどを使っていません。

Last edited by ito-noizi (April 12, 2025 10:59:49)

kuretaka
Scratcher
100+ posts

Scratchスクリプトクイズ

#3418
https://scratch.mit.edu/projects/1160964389/
冗長な気もしますがこれでどうでしょうか…
nposss
Scratcher
100+ posts

Scratchスクリプトクイズ

#3428
https://scratch.mit.edu/projects/1160958203/
統合しました
3番の猫が新作になります

PS
ブロック数は14となります

Last edited by nposss (April 12, 2025 11:06:06)

ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

kuretaka wrote:

#3418
https://scratch.mit.edu/projects/1160964389/
冗長な気もしますがこれでどうでしょうか…
正解です!

音量ブロックを使う方法は僕も考えましたが、どのようにして0より大きいを示すかで悩んであきらめていました。
とても良い実装例だと思います。

想定解は二つ用意していますが、どちらの着想とも異なっています。
また別の方法で問題を解いてみたり、ブロック数を減らすなどして遊んでみてください!

nposss wrote:

#3428
https://scratch.mit.edu/projects/1160958203/
統合しました
3番の猫が新作になります

PS
ブロック数は14となります
マウスポインターまでの距離が100のときに期待した動作をしません。
よって、不正解です。
nposss
Scratcher
100+ posts

Scratchスクリプトクイズ

#3431
https://scratch.mit.edu/projects/1160958203/
4番の猫になります
純粋に100のときの例外処理を追加しました
ブロック数は14 -> 17となります
inoking
Scratcher
1000+ posts

Scratchスクリプトクイズ

こちらを引用します。

ito-noizi wrote:

過去ログが他の人からはわからなくなってしまうので、別プロジェクトとして共有してほしかったです……。
私からもお願いします。
ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

nposss wrote:

#3431
https://scratch.mit.edu/projects/1160958203/
4番の猫になります
純粋に100のときの例外処理を追加しました
ブロック数は14 -> 17となります
ええっと、100でうまくいかないっていうのは適当にテストケースを入れたもので、すべての不正解のデータを上げてるわけではありません。
「少なくとも」と書くのを忘れていました。
type4に関して少なくとも50以上100未満だとうまくいかないように見えます。(もちろんすべてのケースはテストしていませんが)

type5に関して正解です。
16blocksの方の想定解とほとんど同じです。

……とか思っていたら、1block分減らす方法を見つけたので、書き換えちゃいました()
外側のif文についてなのでほとんどソースコードは変わっていません。
repeat分を使った想定解についてはこれです。
https://scratch.mit.edu/projects/1160852298/

一応16blocksだったプログラムの画像も貼っておきます。
https://u.cubeupload.com/ito_noizi/block2025412212616.png
nposss
Scratcher
100+ posts

Scratchスクリプトクイズ

#3418
10Blocksです
WeDo2.0の
距離(\< v)(10)のとき
ブロックを利用しています
https://scratch.mit.edu/projects/1160977530/
Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#3418
14ブロックの回答です

Last edited by Catapult- (April 12, 2025 13:12:57)

ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

nposss wrote:

#3418
10Blocksです
WeDo2.0の
距離(\< v)(10)のとき
ブロックを利用しています
https://scratch.mit.edu/projects/1160977530/

正解です。
そんな拡張機能があったのも知りませんでした……。大なり小なりをここまで短縮できるのは面白い。

Catapult- wrote:

#3418
14ブロックの回答です
正解です。
「リストの()番目」をif文にはめられることと、
真偽値は0のときは偽でそれ以外の数値は真になること
を利用した面白い解き方です。
attoma-ku
Scratcher
48 posts

Scratchスクリプトクイズ

こちらでどうでしょうか。6ブロックです。
https://scratch.mit.edu/projects/1161133769

面倒くさすぎるので距離が100.000334以下の0.000001ごとにしか対応させていませんが、理論上はすべての値に対応させられるはずです。
attoma-ku
Scratcher
48 posts

Scratchスクリプトクイズ

もう一つ作れました。12ブロックです。
https://scratch.mit.edu/projects/1161161223

めっちゃ時間が掛かります。
ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

attoma-ku wrote:

こちらでどうでしょうか。6ブロックです。
https://scratch.mit.edu/projects/1161133769

面倒くさすぎるので距離が100.000334以下の0.000001ごとにしか対応させていませんが、理論上はすべての値に対応させられるはずです。
通常のScratchで動作をするものを正答とします。

直感ではどれだけ圧縮しても100.000001から646.6598796894701までのすべてのdouble型の数は埋めることができないように思えます。
project.jsonを生成するコードをPythonで作りましたが、僕の環境では30分で4e-8%しかできませんでした。
Scratch上で保存、共有できるとは考えづらいです。
もしも保存、共有できるとするのならその説明をお願いします。

attoma-ku wrote:

もう一つ作れました。12ブロックです。
https://scratch.mit.edu/projects/1161161223

めっちゃ時間が掛かります。
少なくともマウスポインターを向くようになっていません。
また、マウスポインターまでの距離が100.000001のときも期待した動作をしません。
よって不正解です。

Last edited by ito-noizi (April 13, 2025 06:51:00)

Powered by DjangoBB