天道是非 ComputerCraft
プロフィール

白築 える

Author:白築 える
白築 える のブログへようこそいらっしゃいました。

mabinogi、PSO2を主に書くブログになります。

http://が禁止ワードなので//以降からで入力してね。

主な記事
PSO2
日記
情報機器
うつ病など。
--------
携帯端末情報
機種:SO-02G(Xperia Z3 Compact)
OS:Android5.0
PC情報
CPU:i7 3770K
RAM:16GB
GPU:HD7970GhzEdition
ASU:SSD 120GB RAID0(バックアップHDD1TB)





タグクラウドとサーチ

マインクラフト computercraftその2(プログラム紹介編)

2012-03-15

今回はID、PW認証ロックドアのプログラムと分散ネットワークの中継基地になるプログラムを書いていくよ!

ドア

ans_id = ("ユーザーID")
ans_pw = ("パスワード")

print("Input:ID")
id = read()
print("Input:PASSWORD")
pw = read()

if id == ans_id then
if pw == ans_pw then
print("Door Open...")
rs.setOutput("ドアの方向", true)
sleep(5)
rs.setOutput("ドアの方向", false)
else
print("password Mismatch")
end
else
print("id Mismatch")
end
os.reboot()

解説です。

まず正解のIDとPWをans_id、ans_pwに代入しておきます。
次にID,PWを入力させる。
入力にはread()関数を利用しましょう。
これはstring型で入るのでnumberが引数の関数に渡すとエラーが出ます。

if ~ then で比較します。
二回比較することでIDとPWをチェックします。
一致していたら5秒間ドア方向へレッドストーン出力を出します。

最後に再起動します。
これをしないと使ったあとコンソールに戻ってしまいます。

ここで重要なのが、ファイル名をstartupにしておくことです。
そうすれな再起動後このプログラムが自動実行されます。
まぁ。while true do ~ endでもよかったりします。

次ネットワーク。
rednet.open("モデムの方向")

while true do
local event, p1, p2, p3, p4, p5 = os.pullEvent("rednet_message")
id = p2
write("id:")
print(id)

local event, p1, p2, p3, p4, p5 = os.pullEvent("rednet_message")
content = p2
write("content:")
print(content)

rednet.broadcast(id)
rednet.broadcast(content)
sleep(1)
end

解説ry

>local event, p1, p2, p3, p4, p5 = os.pullEvent("rednet_message")
この部分はrednet.receive()と同じ機能をもつイベントになります。

変数に入る値にかんしては
eventにはイベント名、p1には送られてきたコンピュータID、p2には内容、p3には・・・わからん。()
p4.p5は何も入っていません。

これを二回実行するのは一回目に目的のコンピュータIDを受信します。
二回目に目的コンピュータへ送る内容を受信します

>rednet.broadcast(id)
>rednet.broadcast(content)
これはすべてのコンピュータに情報を送信するという事です。

>sleep(1)
これを入れないと信号が無限ループしてしまい、トラフィックが100%に達します。

このプログラムを50マス置きにコンピュータにインストールし、可動させることにより分散ネットワークが構築できます。

例えば、このネットワークにトロッコ運用システムを接続することにより、遠くにあるレッドストーン回路の制限外のトロッコを呼び出すことができます。(最大チャンクはまたげません)
他にも水流落下型(でしたっけ?)トラップタワーを接続することにより稼働のON、OFFをどこからでも行えます。

また、IC2、BC2、RPなどにも組み込めます。

今回はここまで。
また今度~
スポンサーサイト

Minecraft コメント: 0 トラックバック: 0

MOD ComputerCraftについて

2012-03-14

このmodの解説は少なく、C言語やLuaがさっぱりの人には難しいmodであります。

たぶん他のmodと比べて一番難しいと思う。

このmodはwindowsみたいにマウスで操作できません。

では解説します。

操作、プログラミングのみです。
今回はコンピュータの操作について
基本コマンドを書きます。
・ls
・cd
・cp
・delete
・edit
・mv
・time
・clear

とりあえずこれらを紹介します。
<~>と書きますが、実際には<>は要りません。
・ls
lsとは現在のフォルダ(カレントディレクトリ)のファイル、フォルダを表示します。

・cd
cdとはチェンジディレクトリの略で、フォルダを移動するコマンドです。
使い方は cd <フォルダ名>でフォルダに移動します。
cd .. で一つ前のフォルダに戻ります。

・cp
cpとはコピーであり、ファイルを複製します。
使い方はcp <コピー元のファイルの絶対パス、相対パスを指定します> <コピー先の絶対パス、相対パスと名前を変更するならパスの後に記述します>

フロッピーに書き込む場合は cp test disk/ と記述します。

・delete
deleteはデーリトです。ファイル、フォルダを削除します。
delete <ファイル名、フォルダ名>
一度削除してしまいますと戻りませんので注意
例:delete test

・edit
editとは、編集です。
ここでプログラムを書きます。
今回は簡単なサンプルプログラムを書いていきます。
時計サンプルになります。
例:edit clock

while true do
sleep(1)
term.clear()
print("..textutils.formatTime(os.time(), false)")
end
これは無限ループでマインクラフト内の現在時刻を1秒間隔で表示するプログラムになります。

ここで出てきたAPIなどの解説
・while ~ do
これはループになります。
条件をtrueに設定すると無限ループになります。
・sleep(値)
これは値秒間処理を停止します。
これを入れないでwhileを実行した場合止まります。
・term.clear()
これは画面を初期化します。
・print()
画面に文字列を表示します。
writeとは違い、こちらは改行コードを含みます。
改行コードは\nになります。
・textutils
これはテキストを処理する基本的なプログラムのまとまりです。
・formatTime()
これは時間形式に変換するプログラムです。
・os.time()
os.とはosのAPIを呼び出すプログラムです。
os.time()こうすることでプログラム内でtimeを使えるようにします。
・true/false
trueは1あるいはハイ
falseは0あるいはイイエ

・mv
moveの略で、ファイルを移動します。
mv <移動対象ファイル> <移動先フォルダ。名前を変更する時は名前も記述>
例:mv test testdir/test2

・time
マインクラフト内の時間を表示します。

・clear
コンソールを初期化します。

今回はここまで。

ComputerCraftは初心者には難しすぎますが、ニコニコ動画でこれを使った動画上がって、ランキング入りしていたのでやりたいけど、使い方がわからない人が多いと思います。

今回これを書かせてもらいました。

書いたものの見直しはほとんどしてないので間違っている箇所があるかもしれないのでその時は直します。

それではまた今度。

Minecraft コメント: 0 トラックバック: 0

ホーム

検索フォーム

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード

アクセスランキング

[ジャンルランキング]
オンラインゲーム
1088位
アクセスランキングを見る>>

[サブジャンルランキング]
その他
442位
アクセスランキングを見る>>