Discuss Scratch

inoking
Scratcher
1000+ posts

質問コーナー2

kintyan256gou wrote:

ここですね。それから数字を入力する場面があるのでそこに4と入力していただくとできると思います。何問かやってみてください。そのうち問題のことが出てくると思います。
リストを変数に代入するときの仕様として
「全要素が長さ1の文字の場合だけ、スペースを挿入しない」ようになっているようです(該当ソースは多分コレ↓)
https://github.com/LLK/scratch-flash/blob/develop/src/primitives/ListPrims.as
private function primContents(b:Block):String {
	var list:ListWatcher = interp.targetObj().lookupOrCreateList(b.spec);
	if (!list) return '';
	var allSingleLetters:Boolean = true;
	for each (var el:* in list.contents) {
		if (!((el is String) && (el.length == 1))) {
			allSingleLetters = false;
			break;
		}
	}
	return (list.contents.join(allSingleLetters ? '' : ' ')); // inoking: 全要素が長さ1の文字だったらスペースを挿入しない
}

また
任意の小数点桁数で四捨五入したい場合は https://scratch.mit.edu/discuss/post/2825458/ のようにすればできます。
_-BlackEyes-_
Scratcher
100+ posts

質問コーナー2

この前スクラッチプロジェクトをアンドロイドの方で動かすという感じのものを見かけたことがあるんですが、やり方を忘れてしまい、書いてあった場所もわからなくなったのでどなたか教えていただけないでしょうか?
inoking
Scratcher
1000+ posts

質問コーナー2

_-BlackEyes-_ wrote:

この前スクラッチプロジェクトをアンドロイドの方で動かすという感じのものを見かけたことがあるんですが、やり方を忘れてしまい、書いてあった場所もわからなくなったのでどなたか教えていただけないでしょうか?
Scratchでスマホのアプリを作ろう です。
mi9g0n
Scratcher
1000+ posts

質問コーナー2

inoking wrote:

kintyan256gou wrote:

ここですね。それから数字を入力する場面があるのでそこに4と入力していただくとできると思います。何問かやってみてください。そのうち問題のことが出てくると思います。
リストを変数に代入するときの仕様として
「全要素が長さ1の文字の場合だけ、スペースを挿入しない」ようになっているようです(該当ソースは多分コレ↓)
https://github.com/LLK/scratch-flash/blob/develop/src/primitives/ListPrims.as
private function primContents(b:Block):String {
	var list:ListWatcher = interp.targetObj().lookupOrCreateList(b.spec);
	if (!list) return '';
	var allSingleLetters:Boolean = true;
	for each (var el:* in list.contents) {
		if (!((el is String) && (el.length == 1))) {
			allSingleLetters = false;
			break;
		}
	}
	return (list.contents.join(allSingleLetters ? '' : ' ')); // inoking: 全要素が長さ1の文字だったらスペースを挿入しない
}

また
任意の小数点桁数で四捨五入したい場合は https://scratch.mit.edu/discuss/post/2825458/ のようにすればできます。
関連で教えてください。
kintyan256gou さんの質問の元となったプロジェクトでは、うまく数値としてリストからデータを抜くことができる場合もあります。
スキマが出来てしまう場合と、うまくいく場合の違いはスクラッチ的にどこで判断を分けているのでしょうか?
( v) 番目( [list v] )を [thing] で置き換える
を使った後のリストからのデータ抽出を行うとスキマが空いてしまうように思えるのですが、理屈的なことが分かりません。
それはそれで「こういうものなんだ」と仕様として納得しますが、やっぱり理屈が分かった方がうれしいのでどなたか解説いただけるとありがたいです。
itnkmkw
Scratcher
1000+ posts

質問コーナー2

masa2004 wrote:

inoking wrote:

Wikipedia によると(略)
その件はもう解決しましたし、MODとハッキングについては質問の意図とは異なるのでもうやめにしたらどうですか。
ええ。もう終わりました。
mi9g0n
Scratcher
1000+ posts

質問コーナー2

嗚呼、文字と数値の違いですか?自己解決なのかな?
yama-t
Scratcher
100+ posts

質問コーナー2

自分がスクラッチに参加した細かい時間がわかる所は何処ですか?
リンクなどが欲しいです
dream1030
Scratcher
500+ posts

質問コーナー2

https://scratchstats.cf のことでしょうか。
yama-t
Scratcher
100+ posts

質問コーナー2

dream1030 wrote:

https://scratchstats.cf のことでしょうか。
それです!ありがとうございます!
ブックマークしておこ…

Last edited by yama-t (July 10, 2018 10:00:45)

kobotyann
Scratcher
1000+ posts

質問コーナー2

Scratchで取り上げることが禁止されている拡張機能などについての種類一覧や、それについてのページはありますか?
_-BlackEyes-_
Scratcher
100+ posts

質問コーナー2

inoking wrote:

_-BlackEyes-_ wrote:

この前スクラッチプロジェクトをアンドロイドの方で動かすという感じのものを見かけたことがあるんですが、やり方を忘れてしまい、書いてあった場所もわからなくなったのでどなたか教えていただけないでしょうか?
Scratchでスマホのアプリを作ろう です。
ありがとうございます
nyan526
Scratcher
100+ posts

質問コーナー2

massyuru-mu wrote:

お聞きしたいことがあるのですが。
スクラッチで右クリックの判定をすることはできるのでしょうか?教えてください。
おそらく無理です…
inoking
Scratcher
1000+ posts

質問コーナー2

mi9g0n wrote:

嗚呼、文字と数値の違いですか?自己解決なのかな?
お察しのとおり、文字か数値かの違いです。

以下はソースコードでの調査を実験で裏打ちしたものです。

以下のリスト要素はすべて文字列なのでスペースなしで結合されます。
(すべて v) 番目を [リスト v] から削除する
(1) を [リスト v] に追加する
(2) を [リスト v] に追加する
(2) を [リスト v] に追加する
[変数 v] を (リスト) にする //123
数値演算の結果を追加すると数値として格納され、「全要素が長さ1の文字」という条件が崩れ、スペースありで結合されます。
(すべて v) 番目を [リスト v] から削除する
(1) を [リスト v] に追加する
(2) を [リスト v] に追加する
((3) * (1)) を [リスト v] に追加する
[変数 v] を (リスト) にする //1 2 3
文字変換演算の結果を追加すると文字として格納され、スペースなしで結合されます。
(すべて v) 番目を [リスト v] から削除する
(1) を [リスト v] に追加する
(2) を [リスト v] に追加する
([] と ((3) * (1))) を [リスト v] に追加する
[変数 v] を (リスト) にする //123

kintyan256gou さんの ここ では条件により
( v) 番目( [list v] )を (() + (1)) で置き換える
が呼ばれることがあり、このとき要素が数値に置き換わるため、スペースありで結合されます。

もっとも
既に紹介したように任意の小数点桁数での四捨五入は1行で実現できます。

蛇足ですが、色んな意味で面白いサンプルだったと思います。
inoking
Scratcher
1000+ posts

質問コーナー2

kobotyann wrote:

Scratchで取り上げることが禁止されている拡張機能などについての種類一覧や、それについてのページはありますか?
取り上げることが禁止なので、存在してはいけません。
mi9g0n
Scratcher
1000+ posts

質問コーナー2

inoking wrote:

mi9g0n wrote:

嗚呼、文字と数値の違いですか?自己解決なのかな?
お察しのとおり、文字か数値かの違いです。

以下はソースコードでの調査を実験で裏打ちしたものです。

以下のリスト要素はすべて文字列なのでスペースなしで結合されます。
(すべて v) 番目を [リスト v] から削除する
(1) を [リスト v] に追加する
(2) を [リスト v] に追加する
(2) を [リスト v] に追加する
[変数 v] を (リスト) にする //123
数値演算の結果を追加すると数値として格納され、「全要素が長さ1の文字」という条件が崩れ、スペースありで結合されます。
(すべて v) 番目を [リスト v] から削除する
(1) を [リスト v] に追加する
(2) を [リスト v] に追加する
((3) * (1)) を [リスト v] に追加する
[変数 v] を (リスト) にする //1 2 3
文字変換演算の結果を追加すると文字として格納され、スペースなしで結合されます。
(すべて v) 番目を [リスト v] から削除する
(1) を [リスト v] に追加する
(2) を [リスト v] に追加する
([] と ((3) * (1))) を [リスト v] に追加する
[変数 v] を (リスト) にする //123

kintyan256gou さんの ここ では条件により
( v) 番目( [list v] )を (() + (1)) で置き換える
が呼ばれることがあり、このとき要素が数値に置き換わるため、スペースありで結合されます。

もっとも
既に紹介したように任意の小数点桁数での四捨五入は1行で実現できます。

蛇足ですが、色んな意味で面白いサンプルだったと思います。
大変よく分かりました。ありがとうございました。
同じように見えても、『1』が数としての1だったり、たまたま数の形をした文字列だったりと、リストはその性質をちゃんとこだわってどこかに覚えている訳なんですね。
また1つスクラッチの奥深さに触れることが出来て、とてもスッキリしました。
masa2004
Scratcher
1000+ posts

質問コーナー2

kobotyann wrote:

Scratchで取り上げることが禁止されている拡張機能などについての種類一覧や、それについてのページはありますか?
ブラウザ拡張機能はほぼ例外なく原則禁止です。
_-BlackEyes-_
Scratcher
100+ posts

質問コーナー2

1x座標って1ピクセルですか?
また、1y座標も1ピクセルでしょうか?
mi9g0n
Scratcher
1000+ posts

質問コーナー2

_-BlackEyes-_ wrote:

1x座標って1ピクセルですか?
また、1y座標も1ピクセルでしょうか?
やはりこういうときに頼れるのは Japanese Scratch-Wikiだなぁと思いました
_-BlackEyes-_
Scratcher
100+ posts

質問コーナー2

mi9g0n wrote:

_-BlackEyes-_ wrote:

1x座標って1ピクセルですか?
また、1y座標も1ピクセルでしょうか?
やはりこういうときに頼れるのは Japanese Scratch-Wikiだなぁと思いました
ありがとうございます
hinasanski
Scratcher
4 posts

質問コーナー2

1つの背景だけのゲームを作っています。変数でスコアはできましたが、タイムをつくりたいので、質問しました。scratchをはじめて1か月の新人なので、分からないことがいっぱいです。教えてください。

Powered by DjangoBB