提供:Japanese Scratch-Wiki
(() を () 番目に挿入する( () ) (ブロック)から転送)
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
() の () 番目に () を挿入する | |
[リスト v] の (1) 番目に [ほげ] を挿入する::list
| |
カテゴリ | 変数 |
タイプ | スタック |
追加 | Scratch 1.3 |
() の () 番目に () を挿入するブロック(変数ブロック/スタックブロック)は、指定したテキストを値に持つ要素を、指定したリストの指定した場所に挿入するブロックである。指定した位置とそれより後ろにあった要素の位置は、新しく挿入された要素の後ろにずれる。Scratch 2.0で挿入位置として「最後」が選択されるか、「last」が引数として渡されると、() を () に追加するブロック同様、リストの最後に要素が追加される。
使用例
何らかの意味のある順番で並んでいるリストに新しい要素を追加したいときは、() を () に追加するブロックでは規則性が壊れてしまうので、このブロックを使って必要な場所に要素を追加する。
() の () 番目に () を挿入するブロックのよくある使用例は次のとおり:
- リストの特定の位置に要素を追加する
[どこに挿入する?] と聞いて待つ [好きな食べもの v] の (答え) 番目に [アップルパイ] を挿入する::list
- 文字をリストとして保存するワープロソフトプロジェクトで、文章の途中に文字を追加する場合
- () を () に追加するブロックを使用してもよいが、追加位置を明確にしておきたい場合
別のブロックによる表現
このブロックの動作を再現するには、数多くの手順が必要になる。現在、Scratchではパラメータ(引数)としてリストを渡すことはできないが、これが可能であれば、次のスクリプトによってこのブロックが代用できることになる。
定義 (テキスト) を (インデックス) 番目に挿入する((リスト))//「画面を再描画せずに実行する」オプションをオンにしておく [作業用リスト v] のすべてを削除する::list //作業用リストは要素を一時的にコピーするためのリスト [i v] を (0) にする ((リスト) の長さ) 回繰り返す//コピーする [i v] を (1) ずつ変える ((リスト)の(i)番目::list) を [作業用リスト v] に追加する end (リスト) のすべてを削除する::list [i v] を (0) にする ([作業用リスト v] の長さ::list) 回繰り返す [i v] を (1) ずつ変える もし <(i) = (インデックス)> なら (テキスト) を (リスト::variable) に追加する end ([作業用リスト v]の(i)番目::list) を (リスト) に追加する end
関連項目
変数 | |
リスト |
GitHubでソースを見る: LLK/scratch-flash /src/primitives/ListPrims.as 102行目