Minecraftとタートルと僕

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

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

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

チュートリアル

sleep実装からイベントを学ぶ(10)-モニタボタンでタートルを操作する

はじめに 今回は、モニタボタンを使ってタートルを直接操作するプログラムを紹介します。前回の最後に予想したとおり、前回のプログラムよりかなり短いですよ今回は。機能的にも前回のプログラムの一部分を使っているだけなので、前回よりも理解しやすいプロ…

sleep実装からイベントを学ぶ(9)-モニタボタンでプログラムを操作する

はじめに 今回は以下のようなプログラムを紹介します。 「モニタボタンによる画面表示操作」プログラムの仕様 コンピュータに隣接した巨大モニタを表示専用モニタとする。 表示専用モニタの中央にキャラクタ「@」を表示する。 また同時にモニタの一番上に、…

sleep実装からイベントを学ぶ(8)-インタラクティブなプログラムを作る

はじめに さて、イベントに関する連載もそろそろ大詰めです。 これまで学んだ内容をフルに使って、いろいろと操作ができる、インタラクティブなプログラムを作ってみましょう。これまで紹介したプログラムは、ターミナル画面上でマウスをクリックしたり、キ…

sleep実装からイベントを学ぶ(7)-Too long without yieldingエラーの解決方法2

エラーを避けるまた別の方法 前回の記事で、「Too long without yielding」を避けるために定期的に「sleep」を入れようというお話をしました。しかし実は、これ以外にもエラーを避ける方法があります。 (これに気づいたのはつい最近なんですよね。これを踏…

sleep実装からイベントを学ぶ(6)-Too long without yieldingエラーの解決方法

はじめに CCプログラムを書いていると、必ず一度は出会う 「Too long without yielding」エラーこれを解決するために一般的に言われるのが、「sleep()を入れろ」なぜ? sleep入れたらプログラムの実行が遅くなるじゃない。 ただでさえプログラム実行という重…

sleep実装からイベントを学ぶ(補足)―ローカル変数・グローバル変数

【補足】変数名の先頭についている local ってなに? そういえば、これまで何度も使っているのに説明をしていませんでした。 良い機会ですのでLuaにおける変数の取り扱いについて説明しましょう。まず、最初に重要な項目だけ先に提示します。 他のプログラム…

sleep実装からイベントを学ぶ(5)―タイマーイベントとは

タイマーイベントってなに? 一言で言うならば、「時限発火式のイベント」です。これだけじゃあんまりなのでもう少し詳しく説明すると、 あらかじめ時間(秒)を指定してタイマーをスタートしておく。その時間が経過することで発生するのがタイマーイベント…

sleep実装からイベントを学ぶ(4)―メニュー画面を作る

ひゃっはー! ようやく仕事納めだ。年末進行やっとおわた。 更新するぜ。ちょー更新するぜ。 前回の課題について 前回出した課題は、以下のようなメニュー画面を作ることでした。 解答例 解答例は以下のとおり。 前回の「@」キャラクター移動プログラムを素直…

sleep実装からイベントを学ぶ(3)―Keyイベントを使いこなす

keyイベントを使いこなす 前回予告した通り、矢印キーを使った操作についてサンプルプログラムを示しましょう。 画面出力についての注意 この手の画面描画系プログラムでは、画面ちらつき防止のためにダブルバッファリングという手法を使うのが一般的です。 …

sleep実装からイベントを学ぶ(2)―イベントとは

イベントは裏で(ひっそりと)起きているんだ! タートル君が活動しているときに、僕たちが何かの働きかけを行うと、 タートル君の裏でイベント(Event)が発生します。たとえば、自動クラフトプログラムが動いているときに、 マウスでタートルの画面をクリ…

sleep実装からイベントを学ぶ(1)―はじめに

はじめに 「whileループにはsleep()を入れること」CCプログラマなら誰でも知っているこのルール。そもそもsleep()って何をやっているんだろう。そのような疑問を持った僕が調べた結果、その副産物によって、これからの記事を書く予定です。これからの記事を…

クラフティタートルプログラミング チュートリアル(7)

クラフティタートルの続き Redstone APIやMFR2のRednetCableの説明で回り道をしてしまったけれど、 クラフティタートルを生産ラインに組み込むケースについて、最終的な自動クラフトプログラムを紹介・解説しましょう。チュートリアル(5)の自動クラフトプ…

Redstone APIを使ってレッドストーン信号を出そう

今回の内容 redstone API説明してクラフティタートルプログラムの完成版を出そうと思ったら、 内容が多すぎてそこまでいかなかった・・・。プログラムは次回かな。今回は、以下の内容でチュートリアルを進めましょう。 CCのLuaインタプリンタの説明 CCではレ…

クラフティタートルプログラミング チュートリアル(6)

クラフティタートルを生産ラインに組み込む それでは、クラフティタートルの応用編をはじめましょう。 これまで考えてきたクラフティタートルを、拠点の生産ラインの中にどうやって組み込むかを考えます。 基本形 これまで考えてきたクラフティタートルの配…

クラフティタートルプログラミング チュートリアル(5)

それでは自動クラフトプログラムの改良をすすめましょう。まずは、 チュートリアル(3)で掲載したプログラム仕様と今回の改良の方針についてまとめておきます。 改良の方針 改良前(チュートリアル(3))の仕様 1個のアイテムをそのままクラフトするよう…

クラフティタートルプログラミング チュートリアル(4)

さて、少し寄り道したけれど、クラフティタートルのチュートリアルを続けましょう。 前回のプログラムの改善 対応できるレシピを増やそう 前回のプログラムは、サトウキビ→砂糖のような1x1レシピに対応するためのプログラムだけど、 もっと多くのレシピに対…

モニタ使用のチュートリアル

モニタ(Monitor)の基礎知識 コンピュータのすぐ隣(上下左右どちらでも)に置いたモニタに色々な表示ができる モニタブロックを四角形の形に置けば結合して大きな一つのモニタとなる(どのサイズまでいけるかは知らない) カラー表示させたいならAdvanced …

クラフティタートルプログラミング チュートリアル(3)

昨晩のうちに公開するつもりが、思わず寝てしまいました。 出勤前に急いで投稿です。 自動クラフトプログラム再考 サトウキビ→砂糖のように、1個のアイテムをそのままクラフトするような不定形レシピ。 これを以降では、「1x1レシピ」と呼びます。1x1レシピ…

クラフティタートルプログラミング チュートリアル(2)

自動クラフトプログラムの仕様 プログラムの仕様は次のとおり。 以下を、材料がなくなるなど、クラフトできなくなるまでひたすら繰り返すプログラムです。 タートルの真上には材料となるアイテムが詰まっているチェストを用意。今回は、サトウキビをパンパン…

クラフティタートルプログラミング チュートリアル(1)

クラフティタートルの仕様 まずはクラフティタートルの仕様をまとめましょう。 1~16までの4x4インベントリのうちすべての3x3をクラフティングテーブルとして認識する。 3x3のレシピの場合、1,2,3,5,6,7,9,10,11のような左上の3x3を使っても良いし、6,7,8,10…

農業タートルプログラミング チュートリアル(補足)

うちのキビ畑とタートル君

農業タートルプログラミング チュートリアル(6)

帰宅時間が遅くてゲームする暇がないよ(泣) プログラム書いてもそれを検証するにはminecraft起動しなくてはならないというのがつらいね。CCのシミュレーション環境があるといいのに。 仕事場のPCで動かしてもばれにくいテキストベースのやつがwとりあえず…

農業タートルプログラミング チュートリアル(5)

だいぶ日にちがあいてしまった。 別に旅行に行って遊びまくっていたわけじゃないんだからね!!それはともかくとして今度は実際にタートルが移動するプログラムを組もうね。課題はサトウキビ収穫プログラムだよ。 え?サトウキビ? FFMとかMFRとかに自動収穫…

農業タートルプログラミング チュートリアル(4)

さて前回は気になる引きをしたけれど プログラムを動かしてみると、すぐにプログラムの問題点に気づくよね?定期的に収穫物を下のチェストにドロップするのだけど、 そのときに少量の骨粉もドロップしてしまうんだ。 収穫物用チェストに骨粉が混じるのが気持…

農業タートルプログラミング チュートリアル(3)

さて前回のプログラムにさらに機能を付け加えようか。 ちょっとプログラムが長くなったので、今回の投稿の最後に掲載するよ。 例によって、コピペ用のものは以下のサイトに置くね。 http://pastebin.com/R0AVwq5h 機能追加の方針 機能追加の方針は前回にも言…

農業タートルプログラミング チュートリアル(2)

前回挙げた問題点の改善回だよ。 問題1とその対策 問題1「プログラム実行時に、繰り返し回数を指定したい」 実行時、以下のようにプログラム名のあとに1個の空白を入れて、「引数(Arguments)」を記述することで回数を変えられるにしよう > harvest 20 問題…

農業タートルプログラミング チュートリアル(1)

さてまず計画を立てよう。一番最初なのでシンプルに行こう。 なお、タートル自体は移動しないので燃料はいらないよ。 燃料いらずで働いてくれるとてもエコなプログラムだよ。 骨粉消費量はひどいのでスケルトンTT必須かもだけどw Farmingについて基本情報 …

タートルに関する基本知識

タートルについての基本知識 タートルは、言わばプログラム可能な自立型ロボットです。 プログラムすれば、移動できないただのコンピュータ以上に様々なことができるようになります。 その1:コンピュータとタートルの違い コンピュータの機能に加えて次の…

【ComputerCraft】プログラミング チュートリアル目次

はじめに それでは簡単で役立つプログラムをまず紹介して、それに機能をどんどん付け加えていくという形でComputerCraftを学びましょう。 プログラムの見やすさ理解しやすさを重視して、厳密性(エラー処理・例外処理)は求めません。 多少の不具合は運用で…

CCコンピュータの環境変数PATHを設定する

環境変数PATHとは 前回の投稿で、CCの内部ディレクトリである「/rom/」以下に新しいプログラムをインストールする方法を説明したけれど、 インストール場所によっては、そのプログラムを実行するためにフルパス(そのプログラムのある場所を正確に)指定しな…