Minecraftとタートルと僕

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

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

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

チュートリアル

回転式直下掘りプログラム

はじめに それでは回転式直下掘りプログラムを考えていきましょう。 最初にアイデアをそのままプログラムで書いたものを紹介。 つぎにそれを具体化します。 最後はこのプログラムの問題点をいくつか挙げて次回の課題としましょう。 全体の流れ まずは、燃料…

初心に戻って採掘タートルを使いこなそう

はじめに 初心に戻って採掘タートルによる穴掘りプログラムを作っていきましょう。まずは採掘(Mining)タートル自体について情報をまとめましょう。 採掘タートルのクラフト 採掘タートルの性能 1歩移動するごとに1の燃料値を消費する。 上下、前後に移動可…

タッチパネル式パスワード認証ドア(h2touchpanel API利用)

昨晩のうちに投稿するつもりが案の定寝てしまいました。 はじめに タッチパネルに表示されているボタンを押してパスワードを入力し、 パスワードが正しければ右にあるドアが開くというプログラムです。このプログラムは、タッチパネルAPI(h2touchpanel API…

オブジェクト指向でどうやってAPIを作るか(h2touchpanel APIの詳細解説)

はじめに オブジェクト指向プログラミングでComputerCraftのAPIを作成するという、マニアックな企画です。 さて、どのくらいの人が興味を持ち、ついてこれるのでしょうか……。 本APIの作成方針 ComputerCraftにおいてAPIを作るときの原則は以下の通りです。 …

h2touchpanel API 詳細

はじめに 次の図のように、外付けモニタ・ターミナル画面にボタンを表示することでタッチパネルを実現するAPIです。 タッチパネルのボタンを右クリックすると、そのボタンにあらかじめ設定されているコマンド(任意の関数)を実行できます。 任意の関数を設…

外部モニタに図形を描こう

前回までのお話 前回までは、「ターミナル画面」で絵を描く方法を紹介してきました。 今回は外部モニタに絵を描く方法を紹介しましょう。今回も色を使うので、金色のAdvanced Monitorは必須です。 まずは画素数のチェック ターミナル画面でも画素数をチェッ…

Paintutils APIを使って図形を描こう

はじめに 前回の説明でターミナル画面に点を描き、線を引き、長方形を描きました。 これらの描画を通して基本的な原理を理解できたと思うので、今回は楽をする方法を紹介しましょう。 Paintutils API 標準で用意されているPaintutils APIは、画像を取り扱い…

ターミナル画面で点を描き、線を引こう

はじめに これまで僕たちは、CCのターミナル画面(コンピュータやタートルを右クリックして表示される画面)や外付けのモニタを使って、文字を表示してきました。今回はこれらの上で点を描き、線を引く方法について学びましょう。色を使いますので、Advanced…

Luaでオブジェクト指向(2)―ピクセル・四角形・ボタンオブジェクトを作ろう

(2014/02/08、表記法について一部修正しました。) はじめに 前回は、オブジェクト指向プログラミングの紹介とともに、 座標オブジェクトを作るプログラムを紹介しました。 今回はこれを応用して、以下のオブジェクトを作る関数を作ってみましょう。 ピクセ…

Luaでオブジェクト指向(1)―基本はコロン記法とメタテーブル

はじめに Luaは組み込み用途の小規模な言語であるにも関わらず、オブジェクト指向プログラミングが可能です。なにそれ怖い。Luaはインスタンスベース*1のオブジェクト指向プログラミングをサポートしています。もっと具体的に言うならば、オブジェクトの雛形…

h2peripheral API version0.2 詳細

現在判明している次バージョンCC1.6のperipheral.find()の仕様が不満なので作りました。(このページは、h2peripheral APIについて情報をまとめるページです。このページは随時更新します) 本APIの概要 (version 0.1についてはこちら)このAPIは、周辺機器を…

乱戦(Melee)タートルのダイヤ剣は強いぞ

スポナーのそばに置いて簡易トラップは有名だよね 動画紹介 カツ丼Pの有名すぎる動画(2012年8月) そして紹介されているプログラム while true do turtle.attack() turtle.dropDown() sleep(0.1) end 使い方(動画内の説明+僕の補足) ダイヤ剣タートルに…

クロージャとコルーチン(2)-クロージャでturtle APIを拡張してみた

はじめに 前回の、 クロージャとコルーチン(1)-状態遷移関数をつくってみた - Minecraftとタートルと僕 より少し間をあけてしまいましたが、 クロージャを使ったTurtleAPI拡張をご紹介します。 補足 なぜこのようにAPIを拡張したのか3行で説明 標準のtur…

クロージャとコルーチン(1)-状態遷移関数をつくってみた

はじめに 最近、 グローバル変数に頼ることなく「関数単独で状態遷移を実現できる関数」を作って遊んでいます。具体的には次のようなの。 配列を与えると、それを環状配列(左端と右端がつながっているリング状配列、ドラクエのワールドマップをイメージする…

ComputerCraftの魅力について語ってみる

ComputerCraftのご紹介 ComputerCraftは、PC版MinecraftのModの一つです。 このModによりマインクラフト世界にコンピュータを導入でき、様々な作業を自動化できるようになります。 中でもタートルというプログラム可能な自走型ロボットを使うことで、楽しみ…

環境構築(5)-文字列をコピー&ペーストする方法

初心者向けチュートリアルをうたっておきながら結局マニアックな内容でござる。 はじめに タイトルで期待させておいて申し訳ありませんが、今回の記事はそれほど役立ちません。 これから紹介する方法を使えば、文字列をコピー&ペーストできるようになるので…

環境構築(4)-pastebinコマンドでCC用Luaプログラムをインストール

最近、マニアックな方向に走りすぎている気がしてきたので、 初心に戻って初心者向けチュートリアルを強化。 はじめに ネット上で公開されているComputerCraft用のLuaプログラムを、手軽にインストールする方法を紹介します。今回は、一度事前準備さえしてお…

APIを作ろう(4)-h2peripheral API の実装を解説

はじめに h2peripheral API 詳細 - Minecraftとタートルと僕 で挙げた「h2peripheral API」を実装したので、そのソースコードを公開し内容を簡単に説明します。解説なんていらない、ただインストールだけしたい、ということであれば以下のようにpastebinコマ…

h2peripheral API version0.1 詳細

(このページは、h2peripheral APIについて情報をまとめるページです。このページは随時更新します) 本APIの概要 このAPIは、周辺機器を取り扱う標準のPeripheral APIを拡張するものです。 以下の関数があります。 wrapByName(<機器種別>) 隣接している全…

APIを作ろう(3)-Colors API を調べてコツをつかもう

はじめに 前回は失礼しました。それでは新しいAPIを実装するために、既存のAPIを調べてみましょう。「Craft OS」「Turtle OS」が提供しているAPIをいろいろ覗いてみたのですが、 小さくてシンプルという点でColors APIが参考になりそうです。今回はこのColor…

APIを作ろう(2)-初心者でも簡単に作れるAPI

はじめに それでは、APIを作ってみましょう。 コツをつかめば誰でも簡単に作れます。 APIに名前をつける ネーミングは、非常に重要です。 これをおろそかにすると使いづらくて仕方ありません。 働きを名前から想像できるように自然な名前をつけましょう。 僕…

APIを自作しよう(1) -APIとはなにか

これから、新しい連載をはじめるよ!! はじめに この連載では、以下の内容を解説する予定です。 APIとは何か。 まずはシンプルなAPIを作ってみよう(別名、初心者でもできるAPI作成) 既存のCCコンピュータAPIを見て、コツを学ぼう 色々なAPIを作ってみよう…

ComputerCraft環境構築(3)-プログラムを自動実行させる2つの方法

プログラムの自動実行について CCコンピュータおよびタートルは、再設置することで再起動(リブート)できます。あるいはターミナル画面を表示しているときに、「CTRL+R」キーを数秒間押しっぱなしにすることでも再起動できます。お手製のプログラムを実行す…

Minecraft1.6.4とComputerCraftインストールの手順(2)

はじめに 今回は以下の内容をお送りする予定です。 Minecraft1.6.4のインストール方法 ←前回説明しました Forgeのインストール ←前回説明しました ComputerCraftのインストール ←今回 ComputerCraft環境整備 ←今回 用意するもの 前回用意したMinecraft1.6.4…

Minecraft1.6.4とComputerCraftインストールの手順(1)

はじめに 今年に入ってからMinecraft1.5.2環境を捨て、1.6.4環境を新しく構築してゲームをやり直しています。 この環境構築ですが、これまでのバージョンに比べてとても簡単にできたことに驚きました。 この驚きを伝えるため手順を画像入りで詳しく紹介した…

sleep実装からイベントを学ぶ(12)―ラジコンプログラム(2)

はじめに(動画を見て、来てくださった方へ) 上記の動画について、ラジコンプログラムの導入方法を知りたい方は2014/01/11の記事をどうぞ。 今回の記事はラジコンプログラムを解説していますが、完全な初心者には難しい内容となっています。しかし、CCの初…

sleep実装からイベントを学ぶ(11)―ラジコンプログラム(1)

はじめに 上記の動画についての概略を知りたい方は2014/01/11の記事をどうぞ。このラジコンプログラムを理解するために、今回は、前提知識であるCC無線通信を学びましょう。 無線通信について詳細な情報は全てCC非公式Wikiに書いてあります。詳しくはそちら…

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

動画撮影&ニコニコ動画に投稿してみた はじめての動画投稿、ドキドキしますね。 ほぼテスト動画なので、動画自体についてのご批判はご容赦ください。【Minecraft】 ComputerCraft ラジコンプログラム 動画の内容 先日解説した「モニタボタンによるタートル…

【補足2】既存の関数を上書きして拡張しよう

はじめに (※今回の内容は、Luaの「無名関数」についての理解が不十分だと意味不明な可能性があります。 前回の記事とセットでご利用ください)さて、前回、 「既存の関数に不満があったら書き換えちゃおうぜ!!」などとまとめましたが、 僕個人としては、T…

【補足】Luaの型は色々あるけれど関数型って特殊なんです

はじめに 今回はLuaというプログラム言語について詳しくお話しましょう。 例によって長いので、結論だけ知りたい人、特にCのポインタを理解できている人なら、最後のまとめだけ見たらOKですよ。 Luaが扱う値のタイプ Luaでは様々な値を扱いますが、その値に…