Discuss Scratch

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

#2820
同時に複数の問題を出すと回答数も増えて混乱します。1度に1つにすることをお勧めします。
また、「想定」以下の意味が分かりません。
なお、出題者は出題の時点ですべての解を用意しておく必要があります。つまり、自分でも解が分からない問題はクイズとして成立しません。

Last edited by abee (March 30, 2024 03:52:48)

honnkon
Scratcher
55 posts

Scratchスクリプトクイズ

h_team_x wrote:

(略)
演算(+,-,*,/,^,xを/のなしで答えなさい。
(略)
quoteするとBBCodeは次のようになっていました。
演算(+,-,*,/,^,xを/の[なにか v]なしで答えなさい。

どういういみか分からないです。詳しい説明をしてください。

どもども。署名でーす。署名についてはこちらへどうぞ。(最終更新:2024/04/27 15:58ごろ)
キーワード2「は」。1から順番に並べると文ができるので、それをコメントする。
自分のサイト
https://www.honnkon.tech

セーブコードマネージャー作ってみた(何か特殊なものの共有にも使えるかも)

JavaScriptだけだといろいろやるのには無理があるか。

=================宣伝======================================

ボールゲーム
https://scratch.mit.edu/projects/935455978/
スイカゲームのようなもの!本日のスコアランキング、昨日のスコアランキング、全期間でのスコアランキング付き!

https://scratch.mit.edu/projects/888203639/ 的当てゲーム
https://scratch.mit.edu/projects/888190209/ ビル経営ゲーム(v6)パッケージ版
https://scratch.mit.edu/projects/890766250/ 鉛筆クリッカー
https://scratch.mit.edu/studios/33863663/ 短編アニメ(現在休止中 再開は不明)
https://scratch.mit.edu/studios/34232284/ スクラニメ
https://scratch.mit.edu/projects/900505681/ ∞ Fizz Buzz

Brainf*ckのインタープリンタ作ってみました
https://scratch.mit.edu/projects/945473537/

HQ9+のインタープリンタ作ってみました
https://scratch.mit.edu/projects/945470350/

「Hello, World!」の比較
https://scratch.mit.edu/projects/934847040/

===========================================================










































ここまで見るほど暇なら秘密のキーワードを見つけてくれるのかな?



























キーワード3「限」。キーワードは5つ。






キーワード1「円周率」。もう全部見つけたかな?




















キーワード4「りが」。もう全部見つけたかな?
やっほー。この文字が見えているという事は何かしたんだね。
何かっていうのはDevtoolsを使ってるか拡張機能を使ってるかその他のことをしてるってことね。
ちなみに隠し文字があるけど、見つけられたかな?
キーワードが入っているよ。キーワード5「ない」。もう全部見つけたかな?
「まだ見つけてない!」という人は、探してみてね。
すべて見つけたらプロフィール(https://scratch.mit.edu/users/honnkon)にコメントしてね。
Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#2820
上の方で指摘されている通り、問題文の中で一部題意が読み取れない部分がありましたが、「演算ブロックのうち、四則演算を用いずに四則演算をせよ」という解釈で回答します
結果を変数 (return) に代入します。
加算
[return v] を (x) にする
[return v] を (y) ずつ変える
減算
[return v] を (x) にする
もし <(y)に[-]が含まれる::operators> なら
[return v] を ([絶対値 v] (y)::operators) ずつ変える
でなければ
[return v] を ([-] と(y)) ずつ変える
end
乗算
[return v] を ([ln v] ([絶対値 v] (x)::operators)::operators) にする
[return v] を ([ln v] ([絶対値 v] (y)::operators)::operators) ずつ変える
[return v] を ([e^ v] (return)::operators) にする
もし <<<(x)に[-]が含まれる::operators> = <(y)に[-]が含まれる::operators>> ではない> なら
[return v] を ([-] と(return)) にする
end
除算
もし <(y)=(0)> なら 
もし <(x)=(0)> なら
[return v] を [NaN] にする
でなければ
もし <(x)>(0)> なら
[return v] を [infinity] にする
でなければ
[return v] を [-infinity] にする
end
end
でなければ
[return v] を ([ln v] ([絶対値 v] (x)::operators)::operators) にする
[return v] を ([-]と([ln v] ([絶対値 v] (y)::operators)::operators)) ずつ変える
[return v] を ([e^ v] (return)::operators) にする
もし <<(x)に[-]が含まれる::operators> = <(y)に[-]が含まれる::operators>> なら
[return v] を ([切り下げ v] (return)::operators) にする
でなければ
[return v] を ([切り上げ v] ([-]と(return))::operators) にする
end
end

負の小数が絡む切り捨て除算はあまり理解しておらず、なんか言語によって流派があるっぽいので除算は間違っているかもしれません。

追記 : この量のブロックプラグインはあんまりだと思ったのでプロジェクトを共有しました。

Last edited by Catapult- (March 30, 2024 05:46:36)


駆け出し開発者です。Scratchではゲーム制作や技術開発などをしています。フォローしてもらえると嬉しいです。
tsmcoder
Scratcher
100+ posts

Scratchスクリプトクイズ

(削除)

#2821:
「想定」より下は想定している回答のブロック数ではないでしょうか。

Last edited by tsmcoder (March 30, 2024 06:08:26)


   
Now tsmcoder's Forum posts: 209 posts (reference by Yukihisa2022)
Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#2824
yの値が小数、負の数の時に成り立たなくなります。

駆け出し開発者です。Scratchではゲーム制作や技術開発などをしています。フォローしてもらえると嬉しいです。
h_team_x
Scratcher
83 posts

Scratchスクリプトクイズ

Catapult- wrote:

#2820
(long unnecessary quote removed by moderator - please don't spam)
1,2のみ正解
3と4はよそうがいです。

Last edited by h_team_x (April 9, 2024 00:44:32)


hello!
My browser / operating system: ChromeOS 15183.69.0, Chrome 108.0.0.0, No Flash version detected (CHROME DEVICE versions)
My browser / operating system: Windows NT 10.0, Chrome 108.0.0.0, No Flash version detected (windows edision)

Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#2826
問題文の投稿から使用禁止のブロック、x,yの範囲(実数全体、正の数、整数、自然数など)が読み取れないのでわかるようにEditして下さい。
また、Quoteは返信ではなく引用です。返信は投稿番号+リンクで十分ですし、引用の際も適宜省略して見やすくするようお願いします。

駆け出し開発者です。Scratchではゲーム制作や技術開発などをしています。フォローしてもらえると嬉しいです。
kencyan
Scratcher
100+ posts

Scratchスクリプトクイズ

#2823を参考として減法、乗法を作ってみました。

減法
[return v] を (x) にする
もし <(y) に (-) が含まれる> なら
[計算用 v] を [2] にする
[結果 v] を [] にする
((y) の長さ) 回繰り返す
もし <<((y)の(計算用)番目の文字) = []> ではない> なら
[結果 v] を ((結果) と ((y)の(計算用)番目の文字)) にする
end
[計算用 v] を (1) ずつ変える
end
[return v] を (結果) ずつ変える
でなければ
[return v] を ([-] と (y)) ずつ変える
end

乗法
[return v] を [0] にする
もし <(y)に(-)が含まれる> なら
[計算用 v] を [2] にする
[結果 v] を [] にする
((y) の長さ) 回繰り返す
もし <<((y)の(計算用)番目の文字) = []> ではない> なら
[結果 v] を ((結果) と ((y)の(計算用)番目の文字)) にする
end
[計算用 v] を (1) ずつ変える
end
(結果) 回繰り返す
[return v] を (x) ずつ変える
end
もし <(x)に(-)が含まれる> なら
[計算用 v] を [2] にする
[結果 v] を [] にする
((return) の長さ) 回繰り返す
もし <<((return)の(計算用)番目の文字) = []> ではない> なら
[結果 v] を ((結果) と ((return)の(計算用)番目の文字)) にする
end
[return v] を (結果) にする
end
でなければ
[return v] を ([-] と (return)) にする
end

でなければ
(y) 回繰り返す
[return v] を (x) ずつ変える
end
end

Last edited by kencyan (March 31, 2024 10:25:08)


Scratch6

Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#2828
jsのfloat型の安全に扱える数の限界が2^53-1 = 9007199254740991であることを利用して、減算を短縮してみました。23Bです。
もし<(y)に[-]が含まれる::operators>なら
[return v] を (([-]と((y)を[9007199254740991]で割ったあまり::operators))を[9007199254740991]で割ったあまり::operators) にする
[return v] を <[-0.5]<((y)を[-1]で割ったあまり::operators)>ずつ変える
[return v] を (-1) ずつ変える
[return v] を ( ([-]と((y)を[1]で割ったあまり::operators))を[1]で割ったあまり::operators) ずつ変える
でなければ
[return v] を ([-]と(y)) にする
end
[return v] を(x)ずつ変える

追記 : 文字列操作による短縮バージョン。19B
もし<(y)に[-]が含まれる::operators>なら
[return v]を[00]にする
((y)の長さ) 回繰り返す
[return v]を( (return) と ( (y) の ((return)の長さ) 番目の文字::operators) )にする
end
でなければ
[return v] を ([-]と(y)) にする
end
[return v] を(x)ずつ変える

Last edited by Catapult- (April 3, 2024 09:54:23)


駆け出し開発者です。Scratchではゲーム制作や技術開発などをしています。フォローしてもらえると嬉しいです。
tsmcoder
Scratcher
100+ posts

Scratchスクリプトクイズ

減算です。
「絶対値」ブロックが使えないとのことでしたので、#2823をもとに、絶対値を別の方法(文字列操作)で求めました。あ、#2829の追記と被った
(22ブロック)

[return v] を (x) にする
もし <(y) に [-] が含まれる::operators> なら
[y' v] を () にする
[y.index v] を (1) にする
((y) の長さ) 回繰り返す
[y.index v] を (1) ずつ変える
[y' v] を ((y'::variables) と ((y) の (y.index::variables)番目の文字::operators)) にする
end
[return v] を (y') ずつ変える
でなければ
[return v] を ([-] と (y)) ずつ変える
end

Last edited by tsmcoder (March 31, 2024 09:43:38)


   
Now tsmcoder's Forum posts: 209 posts (reference by Yukihisa2022)
tsubuanman
Scratcher
100+ posts

Scratchスクリプトクイズ

皆さんなかなか張り切っていますが、加法、減法の代わりはこれで十分だと思います。
[答え v] を (x) ずつ変える
[答え v] を (y) ずつ変える

Last edited by tsubuanman (March 31, 2024 10:47:11)


(´・ω・`)
tsmcoder
Scratcher
100+ posts

Scratchスクリプトクイズ

#2831
「減法を加法に直して計算する」という計算過程から見ればそれでも十分かもしれませんが、
そもそもの「式」が違うことを再現できないと思います。。
答えは同じだが式は違うことの例↓
((1) + (1))
((1) - (-1))

それと、「答え」が実行前に0である前提なので、最初に以下を入れておいた方がいいと思います。(前回の実行結果を引きずってしまうため)
[答え v] を [0] にする
それか元々xにすると短縮できます。
[答え v] を (x) にする

Last edited by tsmcoder (March 31, 2024 10:34:42)


   
Now tsmcoder's Forum posts: 209 posts (reference by Yukihisa2022)
kencyan
Scratcher
100+ posts

Scratchスクリプトクイズ

#2831

あっ、確かにそうですね…
気づかなかった…
と言いながら他の人の指摘の通り減法ができないことにも気づかなかった…

Last edited by kencyan (March 31, 2024 10:41:11)


Scratch6

ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

tsubuanman wrote:

皆さんなかなか張り切っていますが、加法、減法の代わりはこれで十分だと思います。。
[答え v] を (x) ずつ変える
[答え v] を (y) ずつ変える
それで減法の代わりになりますか?

一部のScratcherは量産型作品作ってるけど。
気が向いたときに改造して。
また一つ賢くなるのを繰り返していって。
プログラミング力を高めてってるんじゃないんか。

それってすごく良いことじゃん。
tsubuanman
Scratcher
100+ posts

Scratchスクリプトクイズ

#2832
#2820では「「答え」が実行前に0である前提」とは書かれていないです。

(´・ω・`)
tsubuanman
Scratcher
100+ posts

Scratchスクリプトクイズ

#2834
減法は x+(-y) なので代わりになります
必要な手間はたった2ブロックのプログラムとxとyの値を入力するだけなので、実際に試してもらえたらと思います

Last edited by tsubuanman (March 31, 2024 11:03:53)


(´・ω・`)
kencyan
Scratcher
100+ posts

Scratchスクリプトクイズ

#2835
「「答え」が実行前に0である前提」
であなたがプログラムを書いてしまっているということです。

Last edited by kencyan (March 31, 2024 10:47:02)


Scratch6

tsubuanman
Scratcher
100+ posts

Scratchスクリプトクイズ

#2837
「「答え」が実行前に0である前提でプログラムを書いてしまっている」、というのは私が
[答え v] を [0] にする
を使用していることになりませんか。
[答え v] を (x) ずつ変える
[答え v] を (y) ずつ変える
はxとyをその値ずつ変えているだけです。

補足
何度もプログラムを試す場合は便宜上
[答え v] を [0] にする
は必要になると思いますが、必ずしも計算が0から始まるとは限らないです。
例えば、xが1、yが2、zが3の場合、
((z)+((x) + (y)))//答えは6
は成り立ちますが、
[答え v] を (z) にする
[答え v] を [0] にする
[答え v] を (x) ずつ変える
[答え v] を (y) ずつ変える//答えは3
は成り立ちません。

Last edited by tsubuanman (March 31, 2024 11:07:02)


(´・ω・`)
kencyan
Scratcher
100+ posts

Scratchスクリプトクイズ

#2836

((x) - (y))
の代わりにはなっていません。理由は #2832 の前半をよく読んでください。

Scratch6

tsubuanman
Scratcher
100+ posts

Scratchスクリプトクイズ

減法の代わりではなかったです。
yの値を-にして加法をすることと一緒くたにしていました。

(´・ω・`)

Powered by DjangoBB