スクリプト/配列(履歴ID:21)

最終投稿者:Zararu128x128 mini dycoon 更新:2010/02/04 13:18:48

配列とは


配列とは、順番に並んだデータの列で、
何番目という値を指定して、それに関連付けられたデータの操作を
おこなえるものです。

配列の作成


Rmakeのスクリプト言語(Arrp)での配列の作成は以下のようにおこないます。
a = createArray()

aというローカル変数に配列が入ります。

配列への参照


配列の何番目の要素に値を設定するには以下のように書きます
a[0] = 3
a[1] = 7

配列の何番目かを表わす値をインデックスと呼び、
Arrpでは0から始まります。
上の例ではインデックス0に3を設定、
インデックス1に7を設定します。

指定したインデックスの値を取得するにはたとえば次のように書きます。
speak("a[0] = ", a[0])
speak("a[1] = ", a[1])

この例ではインデックス0とインデックス1の値をメッセージウィンドウに表示しています。

配列の長さ


配列の長さは以下の関数で取得することができます。
len = getArrayLength(a)

配列の長さはcreateArray()で作られたときは0から始まります。
配列に代入したときは最大のインデックス+1が配列の長さとなります。
pushArray, popArray, sliceArrayなど配列の長さを変える
効果を持つ関数を呼んだ場合はそれによっても長さが変わります。

使用例


配列の使用例は以下のとおりです。
#配列を作成します
a = createArray()

#配列に適当な値を追加します。
a[0] = 0.5
a[1] = 2.5
a[2] = 4.5

#配列の内容を切り捨ててメッセージウィンドウに表示します。
i = 0
while i < getArrayLength(a)
  speak("a[", i, "] = ", floor(a[i]))
  i = i + 1
end
#以下のように表示されます。
# a[0] = 0
# a[1] = 2
# a[2] = 4

#pushArray popArray sliceArrayの例です。
speak("push pop slice test")

#配列の末尾に6を追加します。
pushArray(a, 6)
#配列の内容は[0.5, 2.5, 4.5, 6]

#配列の末尾に8を追加します。
pushArray(a, 8)
#配列の内容は[0.5, 2.5, 4.5, 6, 8]

#配列の末尾の値を取得して、配列の末尾の値を消去します。
speak("pop", popArray(a))
#出力は以下の1行
# pop8
#配列の内容は[0.5, 2.5, 4.5, 6]

#配列のインデックスが1の値から2つ切り出して、それを配列の値とします。
a = sliceArray(a, 1, 2)
#配列の内容は[2.5, 4.5]

#配列の内容を表示します。
i = 0
while i < getArrayLength(a)
  speak("a[", i, "] = ", a[i])
  i = i + 1
end
#以下のように表示されます。
# a[0] = 2.5
# a[1] = 4.5


基本変数の場合


基本変数を使用した場合の例は以下のとおりです

setVariable("a", createArray())

getVariable("a")[0] = 0.5
getVariable("a")[1] = 2.5
getVariable("a")[2] = 4.5

i = 0
while i < getArrayLength(getVariable("a"))
  speak("a[", i, "] = ", getVariable("a")[i])
  i = i + 1
end


配列関連の関数


詳しくは以下のリファレンスをご参照ください。

createArray関数
http://rmake.jp/document/function_reference#createArray%E9%96%A2%E6%95%B0

配列への参照
http://rmake.jp/document/function_reference#[]%E9%96%A2%E6%95%B0

配列への参照
http://rmake.jp/document/function_reference#[]%E9%96%A2%E6%95%B0

配列の長さの取得
http://rmake.jp/document/function_reference#getArrayLength%E9%96%A2%E6%95%B0

pushArray関数
http://rmake.jp/document/function_reference#pushArray%E9%96%A2%E6%95%B0

popArray関数
http://rmake.jp/document/function_reference#popArray%E9%96%A2%E6%95%B0

sliceArray関数
http://rmake.jp/document/function_reference#sliceArray%E9%96%A2%E6%95%B0