見出し画像

MinetestのMeseconでプログラミング

はじめに

私は中学校技術科の授業でMinetest(マインテスト)を使ったプログラミングをしています。日本語の資料が少なくて苦労したので、入門用の資料をここにおいときます。MinetestではMesecons(メセコン)というMODを導入することで、マイクラの「レッドストーン回路」と似たような回路を作ることができます。

ランプ点灯

感圧板(Stone Pressure Plate)を踏むとランプ(Mesecon Lamp)が点灯します。

ピストン起動

感圧板を踏むと粘着ピストン(Sticky Piston)が起動します。

遅延

感圧板を踏んでしばらくしてからランプが点灯します。(Delayerを使用)

AND回路

2枚同時に感圧板を踏んだ場合のみランプが点灯します。(AND Gateを使用。他にもOR Gateとか色々あります。)

繰り返し

3秒おきに謎の花(Blinky Plant)から信号が発せられ、ピストンが上下動を繰り返します。

隠し扉

感圧板を踏むと門の中のブロック(Ghoststone)が消えます。

警報ランプ

プレイヤーがPlayer Detectorに近づくとライトが点灯します。

エレベーター

左のレバーを倒すとエレベーターのブロック(Vertical Movestone)が上に移動します。左のレバーを戻してから右のレバーを倒すと、下に移動します。

乱数(Luacontroller)

感圧板を踏むと赤・青・黃のLightstoneのどれかがランダムで光ります。Luacontrollerという部品を設置して、スクリプトを記述して使います。被覆ケーブル(Straight Insulated Mesecon)は平行に敷設できるので、回路を小型化できます。

Luacontrollerに記述するスクリプト

if (event.type == "on" and event.pin.name == "A") then
  n = math.random(1,3)
  if (n == 1) then
    port.b = true
  elseif (n == 2) then
    port.c = true
  else
    port.d = true
  end
end

if (event.type == "off" and event.pin.name == "A") then
  port.b = false
  port.c = false
  port.d = false
end

カウンター(Luacontroller)

Aに信号が入力されると、1回目はB、2回目はC、3回目はDに信号が出力されます。4回目にはB,C,Dの全ての信号が消えます。

if (event.type == "program") then
  mem.n = 0
end

if (event.type == "on" and event.pin.name == "A") then
  mem.n = mem.n + 1
  if (mem.n == 1) then
    port.b = true
  elseif (mem.n == 2) then
    port.c = true
  elseif (mem.n == 3) then
    port.d = true
  else
    port.b = false
    port.c = false
    port.d = false
    mem.n = 0
  end
end

繰り返し処理(Luacontroller)

2秒おきにA,B,C,Dの順に信号が出力されます。最後に全ての信号がオフになり、また繰り返します。

interrupt(2, "timer")

if (event.type == "interrupt" and event.iid == "timer") then
  if (mem.n == 1) then
    port.a = true
  elseif (mem.n == 2) then
    port.b = true
  elseif (mem.n == 3) then
    port.c = true
  elseif (mem.n == 4) then
    port.d = true
  else
    port.a = false
    port.b = false
    port.c = false
    port.d = false
    mem.n = 0
  end
  mem.n = mem.n + 1
end

おわりに

ここに挙げた作例を組み合わせるだけでも、結構面白いものが作れると思います。マイクラのレッドストーン回路を使いこなせている子なら、すぐに適応できると思います。初心者でもそんなに難しくないはず。


いいなと思ったら応援しよう!