Discuss Scratch

inoking
Scratcher
1000+ posts

Scratch への提案

Atridott wrote:

akinarin wrote:

「今はブロックが少なすぎることで上級者のプログラムが解らない」ということが起きている
むしろ逆ではないでしょうか?複雑すぎる定義ブロックなどを用いることがわからない原因になっていると思います。
いえ、論理的には合ってます。
ブロックが少なすぎるから、複雑すぎる定義ブロックなどを用いることになる
ということです。
inoking
Scratcher
1000+ posts

Scratch への提案

#2869:

([] の(1) 番目の文字以外::operators)
に限定しているわけではありません。
リンク先のこれを読みましたか?

inoking wrote:

~略~
これらはすべて作品側で用意できます。難易度は高くありません(もちろん完全な Scratch 初心者は別です)。

文字列操作は練習問題にぴったりです。
また、「初心者が混乱しないか?」というのはブロックが増えること自体が混乱の元となるという意味です。

Python や JavaScript 等は検索機能も豊富で冗長なくらいですが
Scratch とはそもそも設計思想が違います。

なお、
([list v] 中の()の場所:: list)
でやっていることはリスト内の独立した個々の要素の全文一致で、単純明快ですが
([りんご] の中の [り] の場所::operators)
はそうはいかず、ちょっと分かりにくいブロックとなります(一文字検索なら単純ですが)。
Atridott
Scratcher
500+ posts

Scratch への提案

ごめんなさい、完全に僕の読解ミスでした。

————

Scratchには(ユーザーの定義したブロックには)戻り値という概念がありません。だからこそ、
([りんご] の中の [り] の場所::operators)
このようなことをするためには
[変数 v] を [1] にする
もし <[りんご] に [り] が含まれる::operators> なら
<([りんご]の(i)番目の文字::operators) = [り]> まで繰り返す
[変数 v] を (1) ずつ変える
end
でなければ
[変数 v] を [0] にする
end
こんなことをした後の(変数)という形でしかできません。丸い形のものは組み込んだ時点で値が決定するのが利点だと思います。
newmomizi_txt
Scratcher
1000+ posts

Scratch への提案

そうであれば、「返り値のある定義ブロック」を提案した方が汎用性もあって良いと思います。
(実際、そのような提案が以前にもされていました)
melon-budou
Scratcher
28 posts

Scratch への提案

#2859で思い出しました。
変数名を変更という右クリックメニューがありますが、グローバル変数をローカル変数に変更することを追加してほしいです。
めんどくさいじゃないですか。
Atridott
Scratcher
500+ posts

Scratch への提案

inoking wrote:

また、「初心者が混乱しないか?」というのはブロックが増えること自体が混乱の元となるという意味です。

inoking wrote:

なお、
([list v] 中の()の場所:: list)
でやっていることはリスト内の独立した個々の要素の全文一致で、単純明快ですが
([りんご] の中の [り] の場所::operators)
はそうはいかず、ちょっと分かりにくいブロックとなります(一文字検索なら単純ですが)。
([りんご] の中の [り] の場所::operators)
私にはこれがわかりにくいとはあまり思えません。
しかし考えてみれば、複数文字検索の場合自然言語で「りんごのんごの場所」と言ったら「2文字目〜3文字目」が自然ですね。ブロック名に工夫がいるかもしれません。
inoking
Scratcher
1000+ posts

Scratch への提案

Atridott wrote:

~略~
こんなことをした後の(変数)という形でしかできません。丸い形のものは組み込んだ時点で値が決定するのが利点だと思います。
ちょっと問題が発散しています。
「値を返す定義ブロック」の実装は以前から強く望まれており、それに異論は出ていません。#4
(値ブロックの定義::custom)

それが実装されたらすむという話でしょうか?
Atridott
Scratcher
500+ posts

Scratch への提案

inoking wrote:

これらはすべて作品側で用意できます。難易度は高くありません(もちろん完全な Scratch 初心者は別です)。

文字列操作は練習問題にぴったりです。
これを踏まえるとそこまで問題はないと思います。ただ、それとは別にやはり
([りんご] の中の [り] の場所::operators)
これは基本的な処理に入るのかな、というのが私の立場です。
inoking
Scratcher
1000+ posts

Scratch への提案

#2878:

melon-budou wrote:

変数名を変更という右クリックメニューがありますが、グローバル変数をローカル変数に変更することを追加してほしいです。
意見の分かれる提案 にあります。
変数種類の切り換え(「すべてのスプライト用」「このスプライトのみ」「クラウド変数」)#7763 ~ #7785
magicAho
Scratcher
1000+ posts

Scratch への提案

uppmoonrabbit wrote:

コミュニティガイドラインには、「すべての人を歓迎する」と書いてあります。上級者だけしか使えないようなものを実装しても矛盾が生じます。
上級者向け拡張機能が「すべての人を歓迎する」違反になるのでしょうか?
大げさに言うと、PENなども初心者にとっては扱いにくいと思います。

Atridott wrote:

([りんご] の中の [り] の場所::operators)
私にはこれがわかりにくいとはあまり思えません。
しかし考えてみれば、複数文字検索の場合自然言語で「りんごのんごの場所」と言ったら「2文字目〜3文字目」が自然ですね。ブロック名に工夫がいるかもしれません。
それはリストで代用可能ではないでしょうか?

futon0912 wrote:

上級者が「上級者向けの拡張機能」を使ったプロジェクトを公開したとき、初心者はどのようなプログラムなのか分からないと思います。
ブロックには「名前」がついていて、ブロック名の意味が理解出来れば、どのようなプログラムかわかると思います。
Atridott
Scratcher
500+ posts

Scratch への提案

magicAho wrote:

Atridott wrote:

([りんご] の中の [り] の場所::operators)
私にはこれがわかりにくいとはあまり思えません。
しかし考えてみれば、複数文字検索の場合自然言語で「りんごのんごの場所」と言ったら「2文字目〜3文字目」が自然ですね。ブロック名に工夫がいるかもしれません。
それはリストで代用可能ではないでしょうか?
こちらを踏まえてのご意見でしょうか?

Atridott wrote:

Scratchには(ユーザーの定義したブロックには)戻り値という概念がありません。だからこそ、
([りんご] の中の [り] の場所::operators)
このようなことをするためには
//ブロックは略
こんなことをした後の(変数)という形でしかできません。丸い形のものは組み込んだ時点で値が決定するのが利点だと思います。
futon0912
Scratcher
1000+ posts

Scratch への提案

magicAho wrote:

ブロックには「名前」がついていて、ブロック名の意味が理解出来れば、どのようなプログラムかわかると思います。
初心者はブロック名が分かっても、ブロックがどのようなものなのかが分からないと思います。
そのため、どのようなプログラムかは初心者には理解できないのではないでしょうか。
akinarin
Scratcher
500+ posts

Scratch への提案

「再描画せずに実行する」を見えるようにしてほしい

ブロックの追加ではないですが提案があります(既にあればすみません)

現在のScratchで、解りづらく初心者と上級者を分断している機能の1つに
「再描画せずに実行」があります。
100%PENに必須の機能ですが、存在自体知らない人、何の為の機能か解らない人も多くいます。
(僕もその一人でした。100%PENの実現方法が解らず、悩んでました)

そこで少しでもそのハードルを下げる為に
「再描画せずに実行する」を「コード」から見えるようにすることを提案します。

また、この提案が実装されれば上級者のミスも減るはずです
googlesho
Scratcher
100+ posts

Scratch への提案

akinarin wrote:

「再描画せずに実行する」を見えるようにしてほしい
だとしたらこうなります。
定義 ブロック名 再描画せずに実行する機能ON

Last edited by googlesho (Nov. 2, 2022 10:09:53)

akinarin
Scratcher
500+ posts

Scratch への提案

引用元

futon0912 wrote:

初心者はブロック名が分かっても、ブロックがどのようなものなのかが分からないと思います。
そのため、どのようなプログラムかは初心者には理解できないのではないでしょうか。

僕もそう思います。
現在のScratchの上級者が書くプログラムは少し「直感性」から外れています。
例えブロック名があったとしてもブロック名は人によって付け方が違うので初心者には理解し難いでしょう

Last edited by akinarin (Nov. 2, 2022 10:11:08)

akinarin
Scratcher
500+ posts

Scratch への提案

googlesho wrote:

akinarin wrote:

「再描画せずに実行する」を見えるようにしてほしい
だとしたらこうなります。
定義 ブロック名 再描画せずに実行する機能ON

その方法よりは「何かしらのマークが先頭に着く」とかの方が良いでしょう。
プログラムが長くなって見にくいので
Atridott
Scratcher
500+ posts

Scratch への提案

akinarin wrote:

「再描画せずに実行する」を見えるようにしてほしい
反対です。表示したとして「再描画せずに実行する」の意味がわかったりするわけではないですし、わかっている人からした右クリックして「編集」を押すだけの手間です。
futon0912
Scratcher
1000+ posts

Scratch への提案

akinarin wrote:

「再描画せずに実行する」を見えるようにしてほしい
〜略〜
反対です。
自分で題名に何らかの記号を入れるなどして区別すれば良いと思います。

また、表示したところで意味がわからない人は使わないので「ハードルが下がる」ことはないと思います。
akinarin
Scratcher
500+ posts

Scratch への提案

#2890 #2891
なるほど、確かに根本的な解決にはなっておらず、返って無駄な機能ですね。

ですが、何らかの手段でScratcherの二極化を防ぐ必要があります。
何か「再描画せずに実行」を解りやすくする案はありませんか?
futon0912
Scratcher
1000+ posts

Scratch への提案

なぜ「Scratcherの二極化」を防ぐ必要があるのでしょう?

そもそも、「再描画をせずに実行」で「Scratcherの二極化」が起こっているのでしょうか。

Powered by DjangoBB