1. ホーム
  2. lua

[解決済み] excavate 5」のようなコンピュタークラフトプログラムを実行するには?

2022-02-28 19:40:49

質問

のようなプログラムを作りたいのですが、どなたかコマンドを教えてください。

'プログラム19' または
'build house 5 3 10'

に依存するのではなく input = read() ?

私はずっとこれを探し回っていますが、まだ解明されていませんし、見つかっていません。ですから、誰かが教えてくれるといいのですが、誰もできないならそれでもいいです。

このサイトでは、問題を解決するための何かを得なければ、この質問を投稿することができないので、現在readメソッドを使用しているそれを使用するコードを配置します。

input = read()   
if input == "right" then  
  for k, v in ipairs(peripheral.getMethods(input)) do  
    print(k,", ",v)  
  end

このコードは、'scan' 'right' の代わりに 'scan right' ができれば、もっとかっこよくなると思います。

解決方法は?

コンピュタークラフトプログラムに渡された引数やパラメータにアクセスする方法を尋ねているようですね。私がインターウェブで見つけたところでは、 computercraft プロンプトから渡された引数は ... を一番外側のスコープで表示します。

つまり、コンピュタークラフトスクリプトは、バニラのルアスクリプトと同じように、パラメータリストにアクセスするということでしょう。例えば

local arg1, arg2, arg3 = ...
print(arg1, arg2, arg3)

で渡された最初の3つの引数を取得することになります。 arg1 は最初の引数を取ります。 arg2 が2番目となり、以下同様です。もし3つ以下なら、対応する余分な argn nil .

任意の数の引数を渡すには、可変個数のリストをテーブルで囲みます。

local inputs = {...}

print(select('#', ...) .. " arguments received:")
for i, v in ipairs(inputs) do  
  print(i, ",", v)  
end