Computer Craft つるはしなどをタートルに装備させる
- 装備させたいツールを右側のボックスに入れる。
- ボックスの一番左上にあるダイヤのシャベルを右に装備する。
equip 1 right
※ 左上から右下に1~16番 - ダイヤのクワを左に装備する。
equip 2 left
※ 装備を外す場合は unequip right、unequip left
装備した後の姿
ダイヤ以外は装備できなかった。
ComputerCraft タートルを作成する
- マイクラにComputerCraftを導入する。
ComputerCraft | Programmable Computers for Minecraft - 金鉱石やレッドストーンを入手する。
- Advanced Computer (AC) を作成する。
金インゴット7個、レッドストーン1個、板ガラス1個 - Advanced Turtleを作成する。
金インゴット7個、上記3でできたAC1個、チェスト1個
できた。
ブロック名を当てるゲーム2(マイクラ×Python)
前のプログラムの改良版
ブロック名を当てるゲーム(マイクラ×Python) - toimo2011’s diary
ブロックを辞書として登録して、その中からランダムに取り出したものを答える。
# ブロック名を当てるゲーム
# coding:utf-8
from mcpi.block import *
import random
mc.events.clearAll()
# 辞書を作成
# 必要に応じて追加していく
blocks = {"GRASS": GRASS,
"STONE": STONE}
# 辞書からランダムにブロックを取り出す
blockName, blockId = random.choice(list(blocks.items()))
# 適当な位置に名前を当ててほしいブロックを配置する
pos = mc.player.getTilePos()
mc.setBlock(pos.x+5, pos.y, pos.z, blockId)
mc.postToChat("GAME1: What's this block's TYPE? ==> ")
# 正解するまでループ
while True:
# マインクラフト内でテキストを入力する
for i in mc.events.pollChatPosts():
# ブロック名が合っているかチェックする
if i.message == blockName:
mc.postToChat("Correct!")
exit()
else:
mc.postToChat("Wrong!")
mc.postToChat("GAME1: What's this block's TYPE? ==> ")
ブロック名を当てるゲーム(マイクラ×Python)
# ブロック名を当てるゲーム
from mcpi.block import *
mc.events.clearAll()
# 辞書を作成(今回は草ブロックのみ)
a = {"GRASS":GRASS}
mc.postToChat("GAME1: What's this block's TYPE? ==> ")
pos = mc.player.getTilePos()
# 適当な位置に名前を当ててほしいブロックを配置する
mc.setBlock(pos.x+5,pos.y,pos.z,a["GRASS"])
# 正解するまでループ
while True:
# マインクラフト内でテキストを入力する
for i in mc.events.pollChatPosts():
for key in a.keys():
# ブロック名が合っているかチェックする
if i.message == key:
mc.postToChat("Correct!")
exit()
else:
mc.postToChat("Wrong!")
mc.postToChat("GAME1: What's this block's TYPE? ==> ")
繰り返し処理と時間を使って風車を作る(マイクラ×Python)
from mcpi.block import *
import time
# 風車を作る
def windmill(mc,pos):
# 0 風車のサイズは横7マス縦13マス
# 1 下半分石レンガブロックを設置する(地面を合わせて6マス)
mc.setBlocks(pos.x-3,pos.y-1,pos.z-1,pos.x+3,pos.y+4,pos.z-7,STONE_BRICK)
# 2 上半分コンクリートブロックを設置する(251)(6マス)
mc.setBlocks(pos.x-3,pos.y+5,pos.z-1,pos.x+3,pos.y+10,pos.z-7,251)
# 3 中を空気ブロックにする
# 4 風車の後ろ側に扉を設置する
mc.setBlock(pos.x,pos.y,pos.z-7,DOOR_WOOD.id,1)
mc.setBlock(pos.x,pos.y+1,pos.z-7,DOOR_WOOD.id,8)
# 5 屋根を設置する(階段レンガブロック、108)
# 5-1 一段目
mc.setBlocks(pos.x-3,pos.y+11,pos.z-1,pos.x+3,pos.y+11,pos.z-1,108,3)
mc.setBlocks(pos.x-3,pos.y+11,pos.z-2,pos.x-3,pos.y+11,pos.z-6,108)
mc.setBlocks(pos.x+3,pos.y+11,pos.z-2,pos.x+3,pos.y+11,pos.z-6,108,1)
mc.setBlocks(pos.x-3,pos.y+11,pos.z-7,pos.x+3,pos.y+11,pos.z-7,108,2)
# 5-2 二段目
mc.setBlocks(pos.x-2,pos.y+12,pos.z-2,pos.x+2,pos.y+12,pos.z-2,108,3)
mc.setBlocks(pos.x-2,pos.y+12,pos.z-3,pos.x-2,pos.y+12,pos.z-5,108)
mc.setBlocks(pos.x+2,pos.y+12,pos.z-3,pos.x+2,pos.y+12,pos.z-5,108,1)
mc.setBlocks(pos.x-2,pos.y+12,pos.z-6,pos.x+2,pos.y+12,pos.z-6,108,2)
# 5-3 三段目
mc.setBlocks(pos.x-1,pos.y+13,pos.z-3,pos.x+1,pos.y+13,pos.z-3,108,3)
mc.setBlocks(pos.x-1,pos.y+13,pos.z-4,pos.x-1,pos.y+13,pos.z-4,108)
mc.setBlocks(pos.x+1,pos.y+13,pos.z-4,pos.x+1,pos.y+13,pos.z-4,108,1)
mc.setBlocks(pos.x-1,pos.y+13,pos.z-5,pos.x+1,pos.y+13,pos.z-5,108,2)
# 6 羽を設置する(繰り返し処理で羽が回転しているように見せる)
while True:
# 6-1 縦横
# 6-1-1 木
mc.setBlocks(pos.x,pos.y+1,pos.z,pos.x,pos.y+21,pos.z,WOOD_PLANKS)
mc.setBlocks(pos.x-10,pos.y+10,pos.z,pos.x+10,pos.y+10,pos.z,WOOD_PLANKS)
# 6-1-2 羊毛
mc.setBlocks(pos.x+1,pos.y+1,pos.z,pos.x+2,pos.y+9,pos.z,WOOL_WHITE)
mc.setBlocks(pos.x-1,pos.y+12,pos.z,pos.x-2,pos.y+21,pos.z,WOOL_WHITE)
mc.setBlocks(pos.x+2,pos.y+11,pos.z,pos.x+10,pos.y+12,pos.z,WOOL_WHITE)
mc.setBlocks(pos.x-2,pos.y+8,pos.z,pos.x-10,pos.y+9,pos.z,WOOL_WHITE)
time.sleep(1)
# 6-2 斜め
# 6-2-1 木
for i in range(7):
mc.setBlock(pos.x+i,pos.y+10+i,pos.z,WOOD_PLANKS)
mc.setBlock(pos.x-i,pos.y+10-i,pos.z,WOOD_PLANKS)
mc.setBlock(pos.x+i,pos.y+10-i,pos.z,WOOD_PLANKS)
mc.setBlock(pos.x-i,pos.y+10+i,pos.z,WOOD_PLANKS)
# 6-2-2 羊毛
for i in range(6):
mc.setBlock(pos.x+i+1,pos.y+12+i,pos.z,WOOL_WHITE)
mc.setBlock(pos.x+i+1,pos.y+13+i,pos.z,WOOL_WHITE)
mc.setBlock(pos.x-i-1,pos.y+7-i,pos.z,WOOL_WHITE)
mc.setBlock(pos.x-i-1,pos.y+8-i,pos.z,WOOL_WHITE)
mc.setBlock(pos.x+i+2,pos.y+9-i,pos.z,WOOL_WHITE)
mc.setBlock(pos.x+i+2,pos.y+10-i,pos.z,WOOL_WHITE)
mc.setBlock(pos.x-i-2,pos.y+10+i,pos.z,WOOL_WHITE)
mc.setBlock(pos.x-i-2,pos.y+11+i,pos.z,WOOL_WHITE)
time.sleep(1)