Minecraftとタートルと僕

PCゲームMinecraftのMOD「ComputerCraft」の情報を集めたニッチなブログです。

こちらのページは更新が滞っており、情報が古くなりつつあります。新しいCC情報サイトをはじめましたので、もしよければご参照ください。今後ともよろしくお願い申し上げます。

「百億のマインクラフトと千億のタートル」(https://hevo2.hatenablog.com/)

タートルラジコンプログラム 紹介動画

動画撮影&ニコニコ動画に投稿してみた

はじめての動画投稿、ドキドキしますね。
ほぼテスト動画なので、動画自体についてのご批判はご容赦ください。

【Minecraft】 ComputerCraft ラジコンプログラム

動画の内容

先日解説した「モニタボタンによるタートルコントロール」プログラムに、
ワイヤレス通信(RedNet APIを利用)機能を付け加えたプログラムを動かしています。

一言で言うなら、タートルラジコンプログラム です。

  • モニタにボタンを表示(つまりタッチパネルですね)
  • モニタボタンを右クリックで、タートルを遠隔操作
  • 同時に何台でも動かすことができます
  • 操作ボタンの内容は、簡単にカスタマイズ可能。

f:id:hevohevo:20140111082218p:plain

動画中でつぶれて見づらいボタンは図のようになっています
このボタンの「ラベル」と「押すことで実行する関数」は自由に設定できます。
コントローラ側プログラムの先頭にある設定項目を書き換えてください。

  • 「cmd」に入れる値を書き換えることで、任意の関数を実行できます。
    • 複数の関数を指定することもできます。「cmd="turtle.dig() turtle.up()"」のように空白スペースで間を区切って書いてください。
  • 【CCエキスパート向け】「cmd」に入れた文字列はそのまま無名関数として実行されるので次のようなボタンが作れます。
    • 「cmd="for i=1,10 do turtle.up() end"」で10回上昇するボタン
    • 「cmd="os.run({},'rom/programs/turtle/dance')"」とすると「dance」プログラムを実行するボタン。
      • つまり、絶対パス表現でプログラムファイルを指定すれば、タートル側にインストールされている任意のプログラムを実行可能です。

(以下、コントローラ側プログラムから一部抜粋)

----------------------------
-- btns[1]   btns[2]   btns[3]
-- btns[4]   btns[5]   btns[6]
-- btns[7]   btns[8]   btns[9]
-- btns[10]  btns[11]  btns[12]
----------------------------
Btns = {}
Btns[1] = {name="up",   cmd="turtle.up()"}
Btns[2] = {name="forw",   cmd="turtle.forward()"}
Btns[3] = {name="down", cmd="turtle.down()"}
Btns[4] = {name="<=",    cmd="turtle.turnLeft()"}
Btns[5] = {name="back",  cmd="turtle.back()"}
Btns[6] = {name="=>",    cmd="turtle.turnRight()"}
Btns[7] = {name="refu",  cmd="turtle.refuel()"}
Btns[8] = {name="dig",  cmd="turtle.dig()"}
Btns[9] = {name="place", cmd="turtle.place()"}
Btns[10] = {name="sel1",  cmd="turtle.select(1)"}
Btns[11] = {name="sel2",  cmd="turtle.select(2)"}
Btns[12] = {name="sel16", cmd="turtle.select(16)"}

プログラム

pastebin

コントローラ側: http://pastebin.com/uJfWnku6  ・・・実質、100行くらい
タートル側: http://pastebin.com/0ian5ggx  ・・・実質、10行くらい

このプログラムの導入方法

  • ゲーム起動前の事前準備
    • CCのコンフィグファイル「ComputerCraft.cfg」で「B:enableAPI_http=true」にしておく
  • ワイヤレスタートルの準備
    • 「id」コマンドでタートルのIDを調べておく
    • 「> pastebin get 0ian5ggx startup」と打ち込んで、「startup」という名前でプログラムをダウンロード&インストール
    • 「CTRL+R」キーを押してタートル再起動
  • コントローラ(CCコンピュータ)の準備
    • CCコンピュータを設置、その右にAdvancedMonitor設置(金モニタは必須)、コンピュータの上側にWireless Modem設置
    • 「> pastebin get uJfWnku6 radio_ctrl」と打ち込んで、「radio_ctrl」という名前でプログラムをダウンロード&インストール
    • 「> edit radio_ctrl」で、操作するタートルのID部分を編集
      • editコマンドの終了方法は「CTRL」押してメニューを出して、「SAVE」→「EXIT」
    • 「> radio_ctrl」と入力してプログラム実行

このプログラムの解説について

前提である「モニタボタンによるタートルコントロール」プログラムの解説が終わっているので、もうほとんどの解説が終わっていることになりますね。

あとは、

  • ワイヤレス通信について簡単に説明
  • 送信側プログラムを5行くらい編集
  • 受信(タートル)側のプログラムがだいたい10行くらい

うん、あと2回くらいあればすべての解説ができそうです。
(2014.01.19追記)解説回(プログラム初心者には難易度高めかもしれません)

最近の記事は長いばかりで読んでいる人も面白くないだろうから。
やっぱり動いているプログラムを見るとモチベあがりますよね。

  • f:id:hevohevo:20140111122815p:plain:w300 トンネル堀
  • f:id:hevohevo:20140111122827p:plain:w300 黒曜石ゲット