読者です 読者をやめる 読者になる 読者になる

Minecraftとタートルと僕

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

Lua

タートルにAIを組み込もう2(rule-basedプログラミングの基礎)

はじめに 更新が大変遅くなりましたが、その分、内容濃い目でお送りします。 今回は、rule-basedプログラミングの基礎ということで、ルールをどんどん追加していくことで次第にタートルが複雑な作業をできるようになる過程を紹介しましょう。 最終的に以下の…

タートルにAIを組み込もう(rule-basedプログラミングのすすめ)

はじめに 関数型プログラミング? オブジェクト指向? いえ、時代はルールベースですよ!! (ある意味逆行してます) 今回は、手続き型とも、関数型とも、オブジェクト指向とも違う、新しいプログラミングパラダイムについてご紹介したいと思います。 ルー…

採掘タートルで整地する: (8)山を切土して空洞があったときの対策

チュートリアル「採掘タートルで整地する」 (7) << (8)この記事 >> (9) まだ 遅れた言い訳 先週末に連載の続きを書くと言いましたが、遅くなってすみません。 記事はできていたのですが、説明用のSS画像撮るのが面倒で放置してました。 さきほど撮ってき…

採掘タートルで整地する: (7)高さを自動認識して切土する整地プログラム

チュートリアル「採掘タートルで整地する」 (6) << (7)この記事 >> (8) はじめに 整地中 整地後 他のことに熱中していたので連載が止まっていました。別に忘れていたわけではないのでご安心ください。 さて、前回までに、奥行き/幅/高さを指定して整地…

採掘タートルで整地する: (6)松明設置、チェストへのアイテム格納機能の追加

チュートリアル「採掘タートルで整地する」 (5) << (6)この記事 >> (7) 前回までのお話 一度に3つの山を整地(切土)する関数を使うことで、これまでの1.5倍効率がよくなったよ!(当社比) すばらしいプログラムですね!(独自調査による評価) 今回の…

採掘タートルで整地する: (5)整地スピードを約1.5倍にする工夫

チュートリアル「採掘タートルで整地する」 (4) << (5)この記事 >> (6) はじめに 前回の記事で、奥行き(Depth)/幅(Width)/高さ(Height)を指定して、その範囲内を整地するプログラムを紹介しました。 以下のように引数を与えてプログラムを実行す…

採掘タートルで整地する: (4)奥行き・幅・高さを指定して「切土」する

チュートリアル「採掘タートルで整地する」 (3) << (4)この記事 >> (5) はじめに それでは、お待ちかねの整地プログラムです。 今回は、プログラム実行時のパラメータとして、奥行き・幅・高さ(Depth/Width/Height)を指定することで、その範囲内を掘る…

採掘タートルで整地する: (3)確実に1歩前進/上昇する関数

チュートリアル「採掘タートルで整地する」 (2) << (3)この記事 >> (4) はじめに 前回までに、砂/砂利を全て掘るのになぜ正面と真上で待機時間が違うのかというお話をし、確実に採掘プログラム(1行または、3行のコード)を紹介しました。 今回は、この…

採掘タートルで整地する: (2)【補足】なぜ砂/砂利処理時間が正面と真上で違うのか

チュートリアル「採掘タートルで整地する」 (1) << (2)この記事 >> (3) 前回の問題点 前回(第1回目)は、 真正面に砂/砂利の山があったとしても全て採掘して前進するプログラム 真上から砂/砂利が落ちてきたとしても全て採掘して上昇するプログラム …

採掘タートルで整地する: (1)落下する砂や砂利の対策

チュートリアル「採掘タートルで整地する」まとめ (1)この記事 >> (2) はじめに ComputerCraftに最初から入っている excavate プログラムは、指定した範囲内を現在地から下方向へと掘っていきます。 それに対してこれから考える整地プログラムは、現在地よ…

チュートリアル「採掘タートルで整地する」まとめ

はじめに さて、新連載です。 Twitterで面白いアイデアをいくつもいただいたので、これからしばらく、「整地」をテーマにいろいろなプログラムを考えていきましょう。 奥行き、幅、高さを指定して直方体領域内のブロックを削る 奥行き、幅だけを指定して、丘…

チュートリアル「FS APIを使いこなそう」まとめ

目次 チュートリアル目次 >> チュートリアル「FS APIを使いこなそう」まとめ 全13回 対象(Luaプログラミング、初級~中級者) (1): CCファイルシステムの基礎 (2): CCのファイルを扱うシステムプログラムの紹介 (3): FS APIの解説 (4): fs.open()でファイ…

FS API を使いこなそう(13): ゲーム再起動時にタートルが初期位置に戻ってくるプログラム

はじめに 前回の記事はlogging API ver.04の仕様を説明しました。 FS API を使いこなそう(12): logging API version0.4の解説と応用 またその応用例として、タートルが作業をしている間にゲームを終了しても、ゲーム再開時に自動的に初期位置へ戻ってくると…

FS API を使いこなそう(12): logging API version0.4の解説と応用

はじめに 前回は、logging API version0.4を完成させました。 FS API を使いこなそう(11): 移動履歴を使って元の位置に戻る機能を実現 (logging API version 0.4) http://pastebin.com/xLwUS6Y5 主な機能としては、以下のとおり。 ログをファイルに出力す…

【補足】論理演算子を用いたLuaの慣用表現

はじめに 今回はCCから離れて、プログラミング言語Luaについてお話しましょう。 お題はこちら。以前の記事で説明を省いてしまったので、その説明回となります。 function defaultPrint(x) local x = x or "world" print("Hello ",x) end x = x or "world"と…

FS API を使いこなそう(11): 移動履歴を使って元の位置に戻る機能を実現

前回の復習 前回までで、logging APIによるタートル移動履歴機能を完成させました。 FS API を使いこなそう(10): 関数の引数を柔軟に取り扱う logging.forward()などを使って移動したらログファイルに移動したことを書き込んでいきます。 今回は、そのログフ…

FS API を使いこなそう(10): 関数の引数を柔軟に取り扱う

前回のお話 前回:FS API を使いこなそう(9): 【補足】関数を定義する関数を定義する(解説編) 前回紹介したlogging API (ver. 0.2)を使うことで、任意の関数にログ記録機能を簡単につけられるようになりました。 問題点 でも使ってみて気づきませんでした…

FS API を使いこなそう(9): 【補足】関数を定義する関数を定義する(解説編)

前回までのお話 前回:FS API を使いこなそう(8): 【補足】関数を定義する関数を定義する(応用編) 関数を定義する関数を定義しましたよ! この関数、createLoggedFunc()を使ってプログラムが簡略化できました。 logging APIがとりあえずの完成です。 log…

FS API を使いこなそう(8): 【補足】関数を定義する関数を定義する(応用編)

前回のお話 関数型プログラミング(基本編): FS API を使いこなそう(7): 【補足】関数を定義する関数を定義する(基礎編) 前回は関数型プログラミングの基本ということで、Luaの関数がファーストクラスオブジェクトであることを説明しました。 ・・・え…

FS API を使いこなそう(7): 【補足】関数を定義する関数を定義する(基礎編)

移動履歴を残すプログラム かなり間が開きましたが、前回の続きを進めましょう。 前回: FS API を使いこなそう(6): タートルの移動履歴をファイルに書き残すプログラム まず最初に、前回は重要な部分しかお見せしなかったプログラムの完全版を掲載します。 …

FS API を使いこなそう(6): タートルの移動履歴をファイルに書き残すプログラム

移動履歴がなぜ重要か「ゲーム中断・再開問題」 タートルプログラミングに慣れたころ、誰もが悩むのがゲーム中断に伴ってタートルのプログラムも中断してしまうという問題です。 タートルが何かの作業している途中でゲームを中断すると、Luaプログラムも止ま…

FS API を使いこなそう(5): APIファイルの自動ダウンロード

はじめに これまではFS APIの解説をしてきましたが、今回からより実践的な利用方法を紹介しましょう。 まずは、pastebinサイトからのAPIファイル自動ダウンロード機能です。 どのようなケースを想定しているのか あるLuaプログラムがいくつかのファイル、た…

FS API を使いこなそう(4): fs.open()でファイルの読み書き

これまでのお話 前回までにComputerCraftでファイルを扱うための基礎知識を紹介しました。 FS API を使いこなそう(1): CCファイルシステムの基礎 FS API を使いこなそう(2): CCのファイルを扱うシステムプログラムの紹介 FS API を使いこなそう(3): FS APIの…

FS API を使いこなそう(3): FS APIの解説

はじめに 前回は、コンピュータのシェル上で実行できるプログラムの紹介をしました。 今回はLuaプログラムの中で利用できるファイルシステム系のAPI、すなわちFS APIについて解説しましょう。 まずはFS APIについてざっと説明し、その後、個別に使い方のサン…

FS API を使いこなそう(1): CCファイルシステムの基礎

はじめに これから、ComputerCraftのFS (File System) APIについての解説記事を連載します。 このAPIは一言でいうと、CCコンピュータ内部のファイルやディレクトリ(=フォルダ)を操作するために使います。 参考までに、CC公式WikiとCC非公式日本語WikiのFS…

ComputerCraft1.6のTurtle APIまとめ

はじめに 残念なことに、いまだComputerCraft日本語Wikiが更新停止中なので個人的な覚え書きも兼ねて、Turtle APIをまとめてみます。 特に変更が無いAPIについて、詳しくはCC日本語Wikiを見てください。 コンピュータクラフト非公式Wiki - API/Turtle 以下に…

近況報告と最近作ったComputerCraftプログラムを紹介

あたらしくワールドを作り直しました 色々と思うところあって、ワールドを新しく作り直しました。それに伴って、Mod構成も見直し。 特に、1.6.4版Greg-tech(gregtech408s)のひどさに閉口して、Gregはやめることにしました。 - ひどさの例 - 電子回路の作成…

【早いもうきた】ComputerCraft1.63が公開されました。

New Features in ComputerCraft 1.63 さきほど、ComputerCraft1.63が正式公開されました。 CC1.62からCC1.63への変更点は以下の通り。例のとおり、適当訳もつけておきます。 Turtles can now be painted with dyes, and cleaned with water buckets タートル…

CC1.62のバグ報告してきました

これは螺旋階段です。 螺旋階段のアイデアと設計図はリベルさんのところからいただいています。 第四回 Minecraftで西洋風の城を作る(螺旋階段の設計と設置作業) - リベルさんの戯言室 柱に密着して登ると引っかかるので一部だけ設計を変更していることと、…

今後の記事更新ペースについて

少しペースを落とします さすがに3月みたく、平日毎日更新はきつくなってきました。 平日の更新は2、3日に一度、土日はできるだけ更新というペースで行こう思っています。 だいたい仕事のせい。 そして、最近記事のことばかり気をとられてMinecraftで遊ぶ時…

April fool joke about ComputerCraft

Twitter @DanTwoHundred This Surface is easy to use :P (window API is very useful.) pic.twitter.com/QnRkD9lna3— hevohevo (@hevohevo) 2014, 4月 1 My Surface(?) code. [Lua] April fool joke: Surface? No! PocketCompter - Pastebin.com dirty code…

ComputerCraft1.6 公開されました!

ComputerCraft1.6 is here! ComputerCraft 1.6 is here! | ComputerCraft 上記、公式ページで紹介されている動画は追加機能の雰囲気をつかむのに最適。英語わからなくても(だいたい)大丈夫! 大規模バージョンアップとなります 変更点を簡単にまとめると以…

ComputeCraftを快適に遊ぶために行うべき2つの設定

はじめに 前回までのお話 Minecraft1.6.4とforge-1.6.4-9.11.1.965のインストール(改) - Minecraftとタートルと僕 Minecraft1.6.4とForgeの(自称)一番早いインストール方法を紹介 Minecraft1.6.4にComputerCraft1.58をインストールする方法 - Minecraft…

Minecraft1.6.4にComputerCraft1.58をインストールする方法

はじめに 前回は、自称、「一番早いMinecraft1.6.4とForgeのインストール方法」を紹介しました。 Minecraft1.6.4とforge-1.6.4-9.11.1.965のインストール(改) - Minecraftとタートルと僕 インストール方法を説明する中で、 新しいProfileを作ることで、用…

ComputerCraftの無線通信を使いこなそう(10) ―遠隔操作プログラム完成版

はじめに 前回の念を入れた調査により、送信した命令文がそもそも有効かどうか、そしてその実行に成功したかどうかをpcall()の返値によって調べられることがわかりました。 ComputerCraftの無線通信を使いこなそう(9) ―命令の有効性や成功・失敗を調べる - M…

ComputerCraftの無線通信を使いこなそう(9) ―命令の有効性や成功・失敗を調べる

はじめに 前回の最後に、以下のような課題を挙げました。 命令したときに、命令の遂行に成功したのか失敗したのか、そして失敗したのならどのような原因で失敗したのか。これらのエラーが返ってくると、さらにわかりやすく使いやすくなりますよね。 この課題…

ComputerCraftの無線通信を使いこなそう(8) ―インタラクティブな遠隔操作プログラム

はじめに さて、前回までにおおよその機能は実現できましたが、まだいくつか不満があります。 まず一つは、キー入力でタートルを自在に動かせるのは良いけれど、あらかじめ登録しておいた(プログラム中の変換テーブルに書き込みした)命令しか実行できませ…

ComputerCraftの無線通信を使いこなそう(7) ―遠隔操作でプログラムや関数を呼び出そう

はじめに 今回の記事は、前回の記事に対する「QuartzMiner_D」氏からのコメントをヒントに構成しています。百万の感謝を。 ComputerCraftの無線通信を使いこなそう(6) ―遠隔操作でプログラムを呼び出そう - Minecraftとタートルと僕 さて今回の目標は、ター…

ComputerCraftの無線通信を使いこなそう(6) ―遠隔操作でプログラムを呼び出そう

はじめに 前回の最後に、「少しだけ高度なことをする」といったな。あれは嘘だ。 (いえ、説明を書いてたら笑えない量になってしまったので、今回と次回の2回に分けただけなんですけどね、今回は触りの部分だけなので簡単です。こわくなーい) 前回までに、…

ComputerCraftの無線通信を使いこなそう(5) ―遠隔操作をもっと簡単に

はじめに 前回のプログラムによって、タートルを遠隔操作できるようになりました。 メッセージ送信プログラムを実行するときに命令文を引数として与えることで、タートルに対して様々な命令ができます。 ComputerCraftの無線通信を使いこなそう(4) ―無線でタ…

ComputerCraftの無線通信を使いこなそう(4) ―無線でタートルを遠隔操作

はじめに 前回は、無線でメッセージ(文字列)を送信/受信するプログラムを紹介しました。 ComputerCraftの無線通信を使いこなそう(3) ―メッセージ送信・受信プログラム - Minecraftとタートルと僕 今回はこのプログラムを修正して、タートルを遠隔操作する…

ComputerCraftの無線通信を使いこなそう(3) ―メッセージ送信・受信プログラム

はじめに 前回は、無線通信機能をシンプルに提供してくれるRednet APIを紹介し、このAPIを使ったメッセージを送信/受信するプログラムを紹介しました。 ComputerCraftの無線通信を使いこなそう(2) ―RednetAPIの解説 - Minecraftとタートルと僕 今回は前回紹…

ComputerCraftの無線通信を使いこなそう(2) ―RednetAPIの解説

はじめに 前回は無線通信システムについて概要を説明しました。 ComputerCraftの無線通信を使いこなそう(1) -無線通信システムの概要 - Minecraftとタートルと僕 今回はRednet APIを紹介しつつ、実際に動かしてみましょう。 Rednet APIを使ったメッセージの…

ComputerCraftの無線通信を使いこなそう(1) -無線通信システムの概要

はじめに これから、ComputerCraft(以下、CC)の無線通信についてチュートリアルをはじめます。 CCの無線通信システムの概要と、Rednet APIの具体的な使い方について、サンプルとなるコードを示しつつできるだけ丁寧に紹介していくつもりです。 無線通信の概…

次回のチュートリアルのテーマ

ワイヤレスモデム(Rednet)をテーマにするつもり 黒曜石の話も終わり、次は何をテーマにチュートリアルを作るか迷っていたのですが、 コメントでワイヤレスモデムという希望があったので、これを次のテーマにしようと思います。 内容案 前準備、クラフト編 …

黒曜石・焼石自動生成プログラム改(プログラム紹介編)

はじめに 何度も検討を続けてきた黒曜石生成プログラムですが、とりあえずこれが最終形ということで使い方と簡単なプログラム解説をします。 紹介動画はこちら。 プログラムのインストール 「obisigen」という名前でプログラムをダウンロード > pastebin get…

黒曜石・焼石自動生成プログラム改をニコ動に投稿してみた

ニコニコ動画に動画を投稿 動画作るのって大変ですね。 エンコード完了し、投稿直前に内容確認しているときに表示メッセージ関連のバグ発見。 涙目で動画撮り直し。 ターミナルの表示文字が小さすぎるような気がするのだけど、元のゲーム画面の解像度を下げ…

ComputerCraft1.6pr1が出たのでChangeLogを試訳した

(2014/03/13、ComputerCraft1.6pr3 が出ました) (2014/03/08、ComputerCraft1.6pr2 が出ました) Changelog is written: http://t.co/GJq46ytg0k It's the biggest update since 1.4!— Daniel Ratcliffe (@DanTwoHundred) March 6, 2014 楽しみ。もうすぐ…

黒曜石・焼石自動生成プログラム改(施設紹介編)

はじめに ええ、迷走しているのは自覚しているんです。 でもね、もっと良い方法を思いついたのだから仕方ないじゃないですか。 現在の目標 黒曜石・丸石・焼石を、1つの施設とプログラムで自動生成できるようにしたい 燃料補給が面倒なので、生成時にタート…

シルクタッチ採掘タートルを使った焼石製造プログラム

はじめに 前回までに、黒曜石生成プログラム、丸石生成プログラムの紹介をしました。 レッドストーンを消費して黒曜石を生成 基本知識編 施設紹介編 プログラム解説編 上記施設をそのまま使って丸石生成 丸石を自動生成するプログラム(黒曜石生成プログラム…