0

これが私のコードです。鉄キットをプレイしていて、水の流れをコントロールしたいです。茶色のワイヤーにはレッドストーン電源がありますが、黒にはありませんが、それでもERROR!私の問題を知っている人はいますか?

ルアコードで:

shell.run("clear")
brown = rs.testBundledInput("back", colors.brown)
black = rs.testBundledInput("back", colors.black)
t = true
f = nil

if brown == t and black == f then
  redstone.setBundledOutput("back", restone.getBundledOutput("back") -colors.brown)
  print("All water is flowing.")
  sleep(3)
  shell.run("2")
elseif brown == f and black == t then
  redstone.setBundledOutput("back", restone.getBundledOutput("back") -colors.black)
  print("All water is flowing.")
  sleep(3)
  shell.run("2")
elseif brown == t and black == t then
  redstone.setBundledOutput("back", restone.getBundledOutput("back") -colors.brown)
  redstone.setBundledOutput("back", restone.getBundledOutput("back") -colors.black)
  print("All water is flowing.")
  sleep(3)
  shell.run("2")
elseif brown == f and black == f then
  print("All water is flowing.")
  sleep(3)
  shell.run("2")
else
  print("ERROR!")
end
4

1 に答える 1

7

コードから推測するbrownと、 とblackはブール型で、 または のいずれtruefalseです。しかし、あなたはそれらを次のものと比較しています:

t = true
f = nil 

falseとはどちらnilも偽の値ですが、同じではないため、これは正しくfalseありませんnil。に変更しf = falseます。

ただし、これは少し冗長です。if ステートメントではtandは必要ありません。f使用する場合:

if brown == t and black == f then

代わりにこれでテストできます:

if brown and not black then
于 2013-08-03T01:26:08.213 に答える