Discuss Scratch

abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

mitaku115 wrote:

(普通スプリクトクイズって1スプライトじゃ?)
出題者が指定しない限り、特にそういうルールはありません。

Last edited by abee (March 2, 2021 10:43:30)

NT_ZZzz
Scratcher
100+ posts

Scratchスクリプトクイズ

#1154に追記します
入力は 数字で構成された文字列(先頭にマイナス符号がつくことあり)
結果は 変数 に 入力のうち小さくない方を文字列として入れる
ブロックの使用制限はない

#1159の方法について
A: 123456789012345678901234567891
B: 123456789012345678901234567890
でやってみてください
00giri
Scratcher
1000+ posts

Scratchスクリプトクイズ

#1154
これでどうでしょうか?

Last edited by 00giri (March 2, 2021 13:17:07)

NT_ZZzz
Scratcher
100+ posts

Scratchスクリプトクイズ

#1165 @00giri さん 解答
想定解と同じアイデアです(プログラムは方針が違いますが)
正解です

想定解はこちら
https://scratch.mit.edu/projects/494684658/
mitaku115
Scratcher
500+ posts

Scratchスクリプトクイズ

mitaku115 wrote:

() 秒でx座標を (0) に、y座標を (0) に変える
を代用してみましょう!
(ゆっくり指定の場所に行けたらokとします)
age(1スプライトのみとします)
yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

定義 (s)秒で(x),(y)に行く
[xv v] を (((x) - (x座標)) / ((s) / (0.033))) にする
[yv v] を (((y) - (y座標)) / ((s) / (0.033))) にする
((s) / (0.033)) 回繰り返す
x座標を (xv) ずつ変える
y座標を (yv) ずつ変える
end
x座標を (x) 、y座標を (y) にする
こんな感じでどうでしょう。最後のはごり押しです
00giri
Scratcher
1000+ posts

Scratchスクリプトクイズ

定義 (s) 秒でx座標を (x) に、y座標を (y) にする
((s) * (25)) 回繰り返す
x座標を (((x) - (x座標)) / ((s) * (25))) ずつ変える
y座標を (((x) - (y座標)) / ((s) * (25))) ずつ変える
end
x座標を (x) 、y座標を (y) にする
でどうでしょうか?処理時間を見て30ではなく25にしてみました。
yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

mitaku115さんの回答待ちなんですが次の問題出してもいいんですかね?
00giri
Scratcher
1000+ posts

Scratchスクリプトクイズ

最初のほうを見ていると大丈夫だと思います。
yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

少し難しい問題?

1~7桁の正の整数の桁数を求める。
定義 (num) の桁数
...
[桁数 v] を [???] にする

②求めた桁数を使って(使わなくてもいいが)、その数(1~7桁の正の整数)のnum1番目からnum2番目までの数字を取り出す。
定義 (num) の (num1) 番目から (num2) 番目の数値を取り出す。
...
[数値 v] を [???] にする

②の例 :
・(235453) の(2)番目から(5)番目の数字を取り出した場合。
 桁数=6 、数値=3545

・(10087) の(3)番目から(5)番目の数字を取り出した場合。
 桁数=5 、数値=87



どちらも
([log v] \( () \))
([] の長さ)
(() 番目\( [] \)の文字)
の使用を禁止します。
一応、想定解は変数と演算ブロックのみ使用ですが、他のも知りたいのでなんでもOKです。
①だけでも、②だけでも構いません。

追記:どちらかというと①のほうが難しい。発想が必要。②はわかればすぐ。

Last edited by yucca42 (March 3, 2021 23:27:13)

mituki1729
Scratcher
19 posts

Scratchスクリプトクイズ

適当に問題出します

問題:scratchで3次元配列を再現しなさい。なお、リスト内の位置は引数3つで表され、リストには数字のみを入れることができ、数字が入っていない場所は詰めずに空のままとし、リスト内の指定アドレス位置への挿入と削除及びリスト内の指定アドレス位置の数字の取り出しができれば良いものとする。
Poteto143
Scratcher
1000+ posts

Scratchスクリプトクイズ

#1173
質問なのですが、リスト一つだけをうまく処理して三次元配列を作るということでしょうか?
また、「リストには数字のみを入れることができ」とありますが、三次元配列の要素でない部分も全て数字にしなければならないのでしょうか?
mituki1729
Scratcher
19 posts

Scratchスクリプトクイズ

Poteto143 wrote:

#1173
質問なのですが、リスト一つだけをうまく処理して三次元配列を作るということでしょうか?
はい。

Poteto143 wrote:

また、「リストには数字のみを入れることができ」とありますが、三次元配列の要素でない部分も全て数字にしなければならないのでしょうか?
要素ではない部分は数字でなくてもいいですが、多分要素でない部分も数字だけで構成できます。
sousi02
Scratcher
100+ posts

Scratchスクリプトクイズ

#1172
こんなのとかどうですか。
Leonhard01
Scratcher
100+ posts

Scratchスクリプトクイズ

#1172

[桁数 v] を [0] にする
() の桁数::custom

定義 num の桁数
<[1] < (num)> まで待つ
[桁数 v] を (1) ずつ変える
((num::custom) / (10)) の桁数::custom
でどうでしょうか

Last edited by Leonhard01 (March 4, 2021 08:55:34)

yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

#1172 
やり方はいろいろありますが、ぜひ想定解も考えてみてください!

ヒント(?)、①の想定解は
[桁数 v] を (演算系ブロックの組み合わせ::operators) にする
の一行です。

また、②の想定解は
桁数 (num::custom)::custom//桁数を求めてから
[桁数 v] を (演算系ブロックの組み合わせ::operators) にする//求めた桁数も使う
です。

意外と発想力必要です。①は特に

Last edited by yucca42 (March 4, 2021 09:04:48)

00giri
Scratcher
1000+ posts

Scratchスクリプトクイズ

①は
定義 (num) の桁数
[桁数 v] を ((<(num) > [0]> + (<(num) > [9]> + <(num) > [99]>)) + ((<(num) > [999]> + <(num) > [9999]>) + (<(num) > [99999]> + <(num) > [999999]>))) にする
でしょうか?

Last edited by 00giri (March 4, 2021 10:08:52)

yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

おお、その手がありましたか。(900などではなくて999などにすれば動くので)正解ではありますが想定解ではないですね…ブロック数はそれほど変わりませんが真偽値は使っていません。
でも想定解よりもこっちのほうが処理が軽そうなので次はこれ使お^^

Last edited by yucca42 (March 4, 2021 10:01:38)

dannkuru
Scratcher
100+ posts

Scratchスクリプトクイズ


([ln v] \( () \))
を使っていいのなら
定義 (num)の桁数
[桁数 v] を (([切り下げ v] \( (([ln v] \( (num) \)) / ([ln v] \( (10) \))) \)) + (1)) にする
ですか?
yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

はぇ~なるほど、、、完全に負けました。
ちなみに想定解はlog や ln のよくわからん奴は使っていませんでした。解答は②の回答と一緒に出そうと思います..
②、考えてみてください。

余談ですが
想定解を数学好きの友達に見せに行ったら「log使えばいいやん」と言われ、log関数の存在を知り感動したもんですが、くそっlnめ。こいつはどう使えばいいか全くわからずにいましたが今なんとなくわかりました。

Powered by DjangoBB