提供:Japanese Scratch-Wiki
クラウドリストとは、クラウド変数をリストに拡張させたもので、クラウドに保存できるリストのことである。文字列を保存するものを指すことが多い。ただし、リストを直接クラウドに保存することはできないため、クラウド変数を利用して模擬的にクラウドリストを作製する必要がある。
ここでは、クラウドリストにユーザー名(文字列)を保存する方法を紹介する。
作成方法
文字の設定
クラウド変数は数字しか保存できないので、文字列を数列化してクラウド変数に入れる。
[変数 v] を (0) にする [文字コード v] の すべてを削除する::list [使用可能な文字 v] を [abcdefghijklmnopqrstuvwxyz0123456789-_] にする//ユーザー名はa~z,0~9,-,_を使用できるのでこの文字を登録する。 (9) 回繰り返す//今回は文字コードを2桁ずつ読み込むので、実装を簡単にするため1桁の1~9は文字コードとして使いません。 () を [文字コード v] に追加する end ((使用可能な文字::variables)の長さ::operators) 回繰り返す [変数 v] を (1)ずつ変える ((使用可能な文字)の(変数)番目の文字) を [文字コード v] に追加する end
数字二桁に一文字ずつ割り当てる場合、
文字を割り当てるのは01~99、00には「改行」の意味をもたせるのが一般的である。
ここでは実装を簡単にするため01~09にはなんの意味も持たせない。
保存
クラウドリストに保存するプログラムはやや長い。 保存する度に長いプログラムを使うのは面倒なので、定義ブロックを用いた方がよいだろう。
定義 保存 (保存する文字) [変数 v] を (0) にする [一時保存 v] を (00) にする ((保存する文字)の長さ) 回繰り返す [変数 v] を (1) ずつ変える [一時保存 v] を ((一時保存) と ([文字コード v] 中の ((保存する文字) の (変数) 番目の文字) の場所)) にする end [☁データ v] を ((☁データ) と (一時保存)) にする
読み込み
保存の時と同様、プログラムが少し長いので定義を使用する。
定義 読み込み (読み込む数値) [変数 v]を () にする//変数は空白もしくは0を代入する (((読み込む数値::define)の長さ)/(2)) 回繰り返す [一時保存 v] を (((読み込む数値::define)の((変数)+(1))番目の文字)と((読み込む数値::define)の((変数)+(2))番目の文字)) にする もし <(一時保存::variables)=(00)> なら [クラウドリスト v]に()を追加する::list//ここの引数は空白にしておく でなければ [一時保存 v]を([文字コード v]の(一時保存::variables)番目)にする::variables [クラウドリスト v]の ([クラウドリスト v]の長さ::list)番目を(([クラウドリスト v]の([クラウドリスト v]の長さ::list)番目)と(一時保存))で置き換える::list end [変数 v]を (2) ずつ変える end
スクリプトの例
ここではこれまでのプログラムを使ってスクリプトを組んでみる。
@greenflagが押されたとき [変数 v] を (0) にする//文字の設定。定義にしてもよい。 [文字コード v] の すべてを削除する::list [使用可能な文字 v] を [abcdefghijklmnopqrstuvwxyz0123456789-_] にする (9) 回繰り返す () を [文字コード v] に追加する end ((使用可能な文字::variables)の長さ::operators) 回繰り返す [変数 v] を (1)ずつ変える ((使用可能な文字)の(変数)番目の文字) を [文字コード v] に追加する end ...//ここはクラウドリストではないので自分でスクリプトを組もう 保存(ユーザー名::sensing)::custom 保存(点数::variables)::custom @greenflagが押されたとき ずっと 読み込み(☁データ::variables)::custom end
注意点
クラウドチャット
クラウドリストを用いるなどしてチャットを作ることは、禁止されている。
ただし、定型文式チャットだけはその限りではない。
クラウド変数の更新頻度
クラウド変数の更新は、プロジェクト内で0.1秒以上ごとである。ゆえに、クラウド変数への代入を連続して行う場合、0.1秒以上間隔を空けて行わないと、変更したはずの値が変更されていないなどの不具合が発生する場合がある。
念のため、0.3秒おきくらいに代入するのがベストだろう。
文字列の長さの制限
クラウド変数には入れられる値の長さに256文字という制限が存在するため、大量の文字列を扱う際は複数のクラウド変数を用いらなければならない。クラウド変数を最大の10個使用する場合、保存できる値は2560文字である。1人に費やす数列の長さを20文字だと仮定すると、最大で128人のデータを保存できる。