<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>code connection for Minecraft - プログラミングで遊ブログ</title>
	<atom:link href="https://lemon818.com/tag/code-connection-for-minecraft/feed/" rel="self" type="application/rss+xml" />
	<link>https://lemon818.com</link>
	<description>現役システムエンジニアが趣味でプログラミングする自由気ままなブログ</description>
	<lastBuildDate>Sun, 06 Feb 2022 03:13:28 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>	<item>
		<title>【マイクラ】高さ自由の水流エレベーターを Python プログラミングで作る方法</title>
		<link>https://lemon818.com/minecraft_python_elevator/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Mon, 31 Jan 2022 12:56:29 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code connection for Minecraft]]></category>
		<category><![CDATA[make code]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[エレベーター]]></category>
		<category><![CDATA[マイクラ]]></category>
		<category><![CDATA[作り方]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=6081</guid>

					<description><![CDATA[minecraft で高さ自由に指定できるエレベーターを作ってみたい！ minecraft で世界一高いエレベーターを作ってみたい！ &#160; そう思ったことはありませんか？ どーもTakeです。 &#160; 私も…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div></div>
<div class="sc_frame "><strong><span style="color: #000000;">minecraft で高さ自由に指定できるエレベーターを作ってみたい！<br />
minecraft で世界一高いエレベーターを作ってみたい！</span></strong></div>
</div>
<p>&nbsp;</p>
<p>そう思ったことはありませんか？</p>
<p>どーもTakeです。</p>
<p>&nbsp;</p>
<p>私も minecraft にはまっておりますが、世界一高いエレベーターを作ってみたいと思い、</p>
<p>Python プログラミングで「<span style="color: #3366ff;">高さ自由、色の指定自由</span>」のなんでもありの<span style="background-color: #ffff00;"><strong>エレベーター作成プログラミングを開発しました！！</strong></span></p>
<p>私が作成したエレベーター作成プログラミングを動かしたらこんな感じです！</p>
<p>&nbsp;</p>
<p><img fetchpriority="high" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/takai.png" alt="" width="1017" height="578" class="aligncenter wp-image-6095" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/takai.png 1900w, https://lemon818.com/wp/wp-content/uploads/2022/01/takai-300x171.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/takai-1024x582.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/takai-768x437.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/takai-1536x873.png 1536w" sizes="(max-width: 1017px) 100vw, 1017px" /></p>
<p>&nbsp;</p>
<p>高すぎて上がみえない。。。</p>
<p>雲より高いところに出れるエレベーターです。</p>
<p>ちなみに横から空から見るとこんな感じです。</p>
<p>&nbsp;</p>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator2.png" alt="" width="1040" height="607" class="aligncenter wp-image-6087" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator2.png 1706w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator2-300x175.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator2-1024x597.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator2-768x448.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator2-1536x896.png 1536w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
<p>&nbsp;</p>
<p>いまにも太陽に届きそうなエレベーター。。。</p>
<p>ちなみに屋上に出てくるとこんな感じです。</p>
<p>&nbsp;</p>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/zekkeikana.png" alt="" width="1065" height="602" class="aligncenter wp-image-6096" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/zekkeikana.png 1911w, https://lemon818.com/wp/wp-content/uploads/2022/01/zekkeikana-300x170.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/zekkeikana-1024x579.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/zekkeikana-768x434.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/zekkeikana-1536x868.png 1536w" sizes="(max-width: 1065px) 100vw, 1065px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>下に海とか島とかをみると高さが際立っていいですよね。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>自分で作って言うのもなんですが、<strong><span style="color: #ff0000;">見ているだけで結構楽しくないですか？</span></strong>（私の所感です。。）</p>
<p>&nbsp;</p>
<p>これは Minecraft 上で Python プログラミングを動かしている作成したものです。</p>
<p>Python プログラミング「<strong>code connection for Minecraft</strong>」と呼ばれるMinecraft 公式のプログラミング開発環境用のツールで開発しました。</p>
<p>※ 「<strong>code connection for Minecraft</strong>」の使い方について詳しく知りたい方は下記をどうぞ！</p>
<div class="sc_getpost"><a class="clearfix" href="https://lemon818.com/minecraft_code_connection/" ><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/example20220128.gif" width="1482" height="1043"></div><div class="title">【Windows11】Minecraftで Python プログラミングをはじめる方法！</div><div class="date">2022.1.26</div><div class="substr">マイクラでプログラミングを勉強したい！ マイクラでプログラミングするには何から始めたらいいの？わからない！  こんな悩みありませんか？ どーもTakeです。  私も最近趣味でマインクラフトという神ゲーで遊んでいます。 このゲームは自由度が高いというのが特徴ですが、なんとプログラミングで建物もつくれち...</div></a></div>
<p>&nbsp;</p>
<p>この記事では、私が作成したMinecraft 上で<strong>「高さ自由のエレベーター」</strong>を建築するPython プログラミングについて簡単に解説します。</p>
<p>※ YouTube 動画でも紹介しています！よければ<a href="https://youtu.be/5_ujbJ8k52E">こちら</a>どうぞ！</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">この<strong>「高さ自由のエレベーター」</strong>プログラミングの特徴！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>エレベーターを囲うブロックの色を自由に決めれます！</li>
<li>エレベーターの高さを自由に決めれます！（<span style="color: #ff0000;"><strong>ただしMinecraft の処理の都合上あまりに高く設定すると建築できない場合もあります！</strong></span>）</li>
<li>完全自動です！コマンドを入力するだけで何も動かず自動作成できます！</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><strong>「高さ自由のエレベーター」</strong>を建築するPython プログラミングの作り方</h2>
<p>&nbsp;</p>
<p>まず<strong>「高さ自由のエレベーター」</strong>を建築する プログラミングですが、Python というプログラミング言語で作成します。</p>
<p>また開発環境ですが、「<strong>code connection for Minecraft</strong>」と呼ばれるMinecraft 公式のプログラミング開発環境用のツールで開発しました。</p>
<p>&nbsp;</p>
<p>作り方といっても、下の「エレベータプログラミのソースコード」を「<strong>code connection for Minecraft</strong>」のPython プログラミングのところに貼り付けて実行すればOKです！</p>
<p>※ イメージこんな感じです！こんな感じで貼り付けて右下の再生ボタンを押下すればOK！</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/code.png" alt="" width="1151" height="618" class="aligncenter wp-image-6092" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/code.png 1910w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-300x161.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-1024x550.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-768x413.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-1536x825.png 1536w" sizes="auto, (max-width: 1151px) 100vw, 1151px" /></p>
<p>&nbsp;</p>
<p>※ よくわからない方は下記ページに詳しく記載しています。</p>
<div class="sc_getpost"><a class="clearfix" href="https://lemon818.com/minecraft_code_connection/" ><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/example20220128.gif" width="1482" height="1043"></div><div class="title">【Windows11】Minecraftで Python プログラミングをはじめる方法！</div><div class="date">2022.1.26</div><div class="substr">マイクラでプログラミングを勉強したい！ マイクラでプログラミングするには何から始めたらいいの？わからない！  こんな悩みありませんか？ どーもTakeです。  私も最近趣味でマインクラフトという神ゲーで遊んでいます。 このゲームは自由度が高いというのが特徴ですが、なんとプログラミングで建物もつくれち...</div></a></div>
<p>&nbsp;</p>
<h3>「高さ自由のエレベーター」プログラミングの処理フローと実行方法</h3>
<p>&nbsp;</p>
<p><strong>「高さ自由のエレベーター」</strong>を建築する プログラミングの処理の流れはこんな感じです。</p>
<div class="sc_frame_wrap orange">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid orange">
<ol>
<li>エレベータの土台をつくる</li>
<li>エレベータの外観をつくる</li>
<li>エレベータの屋上をつくる</li>
<li>水流ブロックを埋め込む</li>
<li>マグマブロック、ソウルサンドを地面に埋め込んで完成！</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>超ざっくりいうとこれだけです。</p>
<p>なお今回作成するエレベータは「水上エレベータ」と呼ばれるものを作っています。</p>
<p>この「水上エレベータ」はマグマブロック、ソウルサンドに水流ブロックを載せると勢いのある水流ができ、自動で登り下りできるものになります。</p>
<p>&nbsp;</p>
<p>イメージはこんな感じです↓左が登りで右が下りのエレベーターです。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/suijou.png" alt="" width="1041" height="596" class="aligncenter wp-image-6091" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/suijou.png 1874w, https://lemon818.com/wp/wp-content/uploads/2022/01/suijou-300x172.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/suijou-1024x586.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/suijou-768x439.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/suijou-1536x879.png 1536w" sizes="auto, (max-width: 1041px) 100vw, 1041px" /></p>
<p>&nbsp;</p>
<p>これをプログラミングで書いただけ・・・です。</p>
<p>多分実際にソースコードを見たほうがはやいかも、、、って感じです。</p>
<p>ソースコードが気になる方は下の章に載せてますので、そちらをどうぞ。。</p>
<p>&nbsp;</p>
<h4>エレベータープログラミングの実行方法について</h4>
<p>&nbsp;</p>
<p><strong>「高さ自由のエレベーター」</strong>のプログラミングを「code connection for Minecraft」のPythonプログラムに貼り付けて実行状態にできれば</p>
<p>あとはMinecraft のチャット欄に「build」と入力し Enter すればOKです！</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block orange">
<div class="sc_frame_title"><strong>「高さ自由のエレベーター」の実行方法！</strong></div>
<div class="sc_frame ">
<div class="sc_frame_text"><strong>build &lt;エレベーターの高さ&gt; &lt;エレベータの個数&gt;</strong></div>
</div>
</div>
<p>&nbsp;</p>
<p>なお、&lt;エレベータの個数&gt;は指定しなくてもOKです！指定しない場合は1件建築されます！</p>
<p>たとえば下記のように実行できます！</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li>build 100　　・・・高さ100階のエレベーターが1件建築できます！</li>
<li>build 100 <span style="color: #3366ff;">3</span>　・・・高さ100階のエレベーターが<span style="color: #3366ff;">3</span>件建築できます！</li>
<li>build <span style="color: #ff0000;">200</span> 1   ・・・高さ<span style="color: #ff0000;">200</span>階のエレベーターが3件建築できます！</li>
</ol>
</div>
<p>&nbsp;</p>
<h3>エレベータープログラミングのソースコード</h3>
<p>&nbsp;</p>
<p>Python プログラミングのソースコードを載せます。</p>
<p>ちなみにPython プログラミングの下記行の値を変えることで自分好みの設定に変更もできます！</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap orange">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid orange">
<ol>
<li>THEAM_BLOCK = DIAMOND_BLOCK　→ ここでブロックの種類を変更できます！</li>
<li>MAX_STAIRS = 200 → ここでエレベーターの最大階を指定できます！</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p><pre class="crayon-plain-tag"># ############################################
# エレベータ自動作成
# ############################################

# 最初のポジション
F_X = 0
F_Y = -1
F_Z = 5

# エレベータの間隔
E_INTERVAL = 6

# 積み重ねるエレベータの単位
ELEVATOR_UNIT = 50

# 足場の単位
SCAFFOLD_UNIT = 5

# エレベータの最大階
MAX_STAIRS = 200

# エレベータ作成
def buildElevator2(stairs):

    agent.teleport_to_player()
    # THEAM_BLOCK = BLOCK_OF_QUARTZ
    THEAM_BLOCK = DIAMOND_BLOCK
    firstPosition = pos(F_X, F_Y, F_Z)

    calNum = 0
    MAX_NUM = stairs / ELEVATOR_UNIT
    F_Y_B = F_Y
    F_Y_A = F_Y + ELEVATOR_UNIT 

    # 削除
    blocks.fill(AIR, pos(F_X -2, F_Y+1, F_Z-2), pos(F_X + 2, F_Y + stairs + 5, F_Z + 2), FillOperation.REPLACE)

    # 客席つくる
    blocks.fill(GLASS, pos(-1,1,-1), pos(1,2,-1), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(-1,1,1), pos(1,2,1), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(-1,1,0), pos(-1,2,0), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(1,1,0), pos(1,2,0), FillOperation.REPLACE)

    # 土を埋める
    blocks.fill(THEAM_BLOCK, pos(F_X -2, F_Y , F_Z ), pos(F_X + 2, F_Y, F_Z + 2), FillOperation.REPLACE)
    blocks.place(blocks.block_with_data(DIRT, 1), pos(F_X +1, F_Y , F_Z + 1))
    blocks.place(blocks.block_with_data(DIRT, 1), pos(F_X -1, F_Y , F_Z + 1))

    # エレベータ外観
    if stairs &lt;= ELEVATOR_UNIT:

        # エレベータを積み重ねず建築
        blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y, F_Z + 2), pos(F_X + 2, F_Y + stairs, F_Z + 2), FillOperation.REPLACE)
        blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y, F_Z), pos(F_X - 2, F_Y + stairs, F_Z + 1), FillOperation.REPLACE)
        blocks.fill(THEAM_BLOCK, pos(F_X, F_Y, F_Z), pos(F_X, F_Y + stairs, F_Z + 1), FillOperation.REPLACE)
        blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y, F_Z), pos(F_X + 2, F_Y + stairs, F_Z + 1), FillOperation.REPLACE)
        blocks.fill(PINK_STAINED_GLASS, pos(F_X - 1, F_Y + 3, F_Z), pos(F_X - 1, F_Y + stairs, F_Z), FillOperation.REPLACE)
        blocks.fill(BLUE_STAINED_GLASS, pos(F_X + 1, F_Y + 3, F_Z), pos(F_X + 1, F_Y + stairs, F_Z), FillOperation.REPLACE)
        blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y + 1, F_Z-1), pos(F_X + 2, F_Y + stairs, F_Z-1), FillOperation.REPLACE)
        blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y + 1, F_Z-1), pos(F_X - 2, F_Y + stairs, F_Z-1), FillOperation.REPLACE)
        blocks.fill(THEAM_BLOCK, pos(F_X, F_Y + 1, F_Z-1), pos(F_X, F_Y + stairs, F_Z-1), FillOperation.REPLACE)

    else:
        # エレベータを積み重ねて建築
        for i in range(MAX_NUM-1):
            player.say("エージェント「" + str(F_Y_B+2) + "～"+ str(F_Y_A+1) + "階を建築中！」")
            blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y_B, F_Z + 2), pos(F_X + 2, F_Y_A, F_Z + 2), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y_B, F_Z), pos(F_X - 2, F_Y_A, F_Z + 1), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X, F_Y_B, F_Z), pos(F_X, F_Y_A, F_Z + 1), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y_B, F_Z), pos(F_X + 2, F_Y_A, F_Z + 1), FillOperation.REPLACE)

            if i == 0:
                blocks.fill(PINK_STAINED_GLASS, pos(F_X - 1, F_Y + 3, F_Z), pos(F_X - 1, F_Y_A, F_Z), FillOperation.REPLACE)
                blocks.fill(BLUE_STAINED_GLASS, pos(F_X + 1, F_Y + 3, F_Z), pos(F_X + 1,F_Y_A, F_Z), FillOperation.REPLACE)
                blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y + 1, F_Z-1), pos(F_X + 2, F_Y_A, F_Z-1), FillOperation.REPLACE)
                blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y + 1, F_Z-1), pos(F_X - 2,F_Y_A, F_Z-1), FillOperation.REPLACE)
                blocks.fill(THEAM_BLOCK, pos(F_X, F_Y + 1, F_Z-1), pos(F_X, F_Y_A, F_Z-1), FillOperation.REPLACE)
                blocks.fill(TORCH, pos(F_X, F_Y + 1, F_Z - 2), pos(F_X, F_Y_A, F_Z - 2), FillOperation.REPLACE)
            else:
                blocks.fill(PINK_STAINED_GLASS, pos(F_X - 1, F_Y_B, F_Z), pos(F_X - 1, F_Y_A, F_Z), FillOperation.REPLACE)
                blocks.fill(BLUE_STAINED_GLASS, pos(F_X + 1, F_Y_B, F_Z), pos(F_X + 1,F_Y_A, F_Z), FillOperation.REPLACE)
                blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y_B, F_Z-1), pos(F_X + 2, F_Y_A, F_Z-1), FillOperation.REPLACE)
                blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y_B, F_Z-1), pos(F_X - 2,F_Y_A, F_Z-1), FillOperation.REPLACE)
                blocks.fill(THEAM_BLOCK, pos(F_X, F_Y_B, F_Z-1), pos(F_X, F_Y_A, F_Z-1), FillOperation.REPLACE)
                blocks.fill(TORCH, pos(F_X, F_Y_B, F_Z - 2), pos(F_X, F_Y_A, F_Z - 2), FillOperation.REPLACE)

            F_Y_B = F_Y_A
            F_Y_A = F_Y_A + ELEVATOR_UNIT 
            calNum = calNum + 1

        LAST_Y = stairs - calNum * ELEVATOR_UNIT + F_Y_B

        # エレベータを積み重ねて建築　最終階
        if stairs - calNum * ELEVATOR_UNIT &gt; 0:
            player.say("エージェント「" + str(F_Y_B+2) + "～"+ str(F_Y_A+1) + "階を建築中！」")
            blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y_B, F_Z + 2), pos(F_X + 2, LAST_Y, F_Z + 2), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y_B, F_Z), pos(F_X - 2, LAST_Y, F_Z + 1), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X, F_Y_B, F_Z), pos(F_X, LAST_Y, F_Z + 1), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y_B, F_Z), pos(F_X + 2, LAST_Y, F_Z + 1), FillOperation.REPLACE)
            blocks.fill(PINK_STAINED_GLASS, pos(F_X - 1, F_Y_B, F_Z), pos(F_X - 1, LAST_Y, F_Z), FillOperation.REPLACE)
            blocks.fill(BLUE_STAINED_GLASS, pos(F_X + 1, F_Y_B, F_Z), pos(F_X + 1, LAST_Y, F_Z), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y_B, F_Z-1), pos(F_X + 2, LAST_Y, F_Z-1), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y_B, F_Z-1), pos(F_X - 2, LAST_Y, F_Z-1), FillOperation.REPLACE)
            blocks.fill(THEAM_BLOCK, pos(F_X, F_Y_B, F_Z-1), pos(F_X, LAST_Y, F_Z-1), FillOperation.REPLACE)
            blocks.fill(TORCH, pos(F_X, F_Y_B, F_Z - 2), pos(F_X, LAST_Y, F_Z - 2), FillOperation.REPLACE)

    # エレベータ屋上
    blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y + stairs + 1, F_Z+2), pos(F_X + 2, F_Y + stairs + 3, F_Z+2), FillOperation.REPLACE)
    blocks.fill(THEAM_BLOCK, pos(F_X + 2, F_Y + stairs + 1, F_Z+1), pos(F_X + 2, F_Y + stairs + 3, F_Z+1), FillOperation.REPLACE)
    blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y + stairs + 1, F_Z+1), pos(F_X - 2, F_Y + stairs + 3, F_Z+1), FillOperation.REPLACE)
    blocks.fill(THEAM_BLOCK, pos(F_X, F_Y + stairs + 1, F_Z+1), pos(F_X, F_Y + stairs + 3, F_Z+1), FillOperation.REPLACE)
    blocks.fill(THEAM_BLOCK, pos(F_X - 2, F_Y + stairs, F_Z-1), pos(F_X + 2, F_Y + stairs, F_Z-1), FillOperation.REPLACE)
    blocks.fill(THEAM_BLOCK, pos(F_X - 0, F_Y + stairs + 1, F_Z + 1), pos(F_X - 0, F_Y + stairs + 3, F_Z + 1), FillOperation.REPLACE)
    blocks.fill(THEAM_BLOCK, pos(F_X - 1, F_Y + stairs + 3, F_Z + 1), pos(F_X - 1, F_Y + stairs + 3, F_Z + 1), FillOperation.REPLACE)
    blocks.fill(THEAM_BLOCK, pos(F_X + 1, F_Y + stairs + 3, F_Z + 1), pos(F_X + 1, F_Y + stairs + 3, F_Z + 1), FillOperation.REPLACE)

    # パネルつける
    useAgent(199,DOWN,F_X-1,F_Y + 1,F_Z)
    useAgent(199,DOWN,F_X+1,F_Y + 1,F_Z)
    useAgent(199,UP,F_X-1,F_Y + 2,F_Z)
    useAgent(199,UP,F_X+1,F_Y + 2,F_Z)

    before_p = player.position()
    i = 1
    stempNum = 0

    blocks.fill(8, pos(F_X + 1, F_Y + 1, F_Z + 1),pos(F_X + 1, F_Y + stairs, F_Z + 1), FillOperation.REPLACE)
    blocks.fill(8, pos(F_X - 1, F_Y + 1, F_Z + 1),pos(F_X - 1, F_Y + stairs, F_Z + 1), FillOperation.REPLACE)

    # エレベータの地面を置き換え
    blocks.place(blocks.block_with_data(SOUL_SAND, 1), pos(F_X +1, F_Y, F_Z + 1))
    blocks.place(blocks.block_with_data(MAGMA_BLOCK, 1), pos(F_X -1, F_Y, F_Z + 1))

    # 足場撤去
    removeScaffold(stairs)
    player.say("エージェント「終わったあああああ」")
    agent.teleport_to_player()


# 入力位置を最初の位置からのポジションずらす
def setPositionInfo(aX: number, aY: number, aZ: number):
    apX = F_X + aX
    apY = F_Y + aY
    apZ = F_Z + aZ
    return apX,apY,apZ

# エージェントワープさせておかせる アイテムはこれでおく
def useAgent(itemName,direction,ax,ay,az):
    agent.set_item(itemName,64,1)
    agent.set_slot(1)
    agent.teleport(pos(ax, ay, az), NORTH)
    agent.place(direction)

# 足場作成
def buildScaffold(stempNum,SCAFFOLD_UNIT=5):
    blocks.fill(GLASS, pos(-1,0,-1), pos(1,SCAFFOLD_UNIT,1), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(-1,SCAFFOLD_UNIT+1,-1), pos(1,SCAFFOLD_UNIT+2,-1), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(-1,SCAFFOLD_UNIT+1,1), pos(1,SCAFFOLD_UNIT+2,1), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(-1,SCAFFOLD_UNIT+1,0), pos(-1,SCAFFOLD_UNIT+2,0), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(1,SCAFFOLD_UNIT+1,0), pos(1,SCAFFOLD_UNIT+2,0), FillOperation.REPLACE)
    player.teleport(pos(0, SCAFFOLD_UNIT + 2, 0))
    return stempNum + 1

# 足場撤去
def removeScaffold(stairs):
    blocks.fill(AIR, pos(-1,0,-1), pos(1,stairs,1), FillOperation.REPLACE)

# ############################################
# 呼び出し用メソッド
# ############################################

# チャット 最初に位置に戻す
def on_on_chat():
    agent.teleport_to_player()
    player.say("完了")
player.on_chat("tp", on_on_chat)

# チャット 位置確認
def on_on_chat0():
    blocks.place(REDSTONE_BLOCK, pos(F_X,F_Y,F_Z))
    player.say("完了")
player.on_chat("compass", on_on_chat0)

# チャット エレベーター建築
def on_on_chat2(stairs=0,num=1):

    if 2 &lt; stairs and stairs &lt;= MAX_STAIRS:
        if num == 0:
            num = 1
        player.say("=========== 開始！ ===========")
        for i in range(num):
            if i &gt; 0:player.teleport(pos(E_INTERVAL, 0 , 0))
            player.say(str(i+1) + "件目 開始！")
            buildElevator2(stairs)
            player.say(str(i+1) + "件目 完了！")
        player.say("=========== 完了！ ===========")
    else :
        player.say("実行コマンド：build [エレベータの階層] &lt;オプション：エレベータの数&gt;")
        player.say("エレベータの階層は 3 ~ " + MAX_STAIRS + "の数字を入力してください")
        player.say("コマンド入力例)：build 5 1")

player.on_chat("build", on_on_chat2)</pre><p>
&nbsp;</p>
<h3><strong>「高さ自由のエレベーター」</strong>プログラミングを実行する上での注意点</h3>
<p>&nbsp;</p>
<p>まずこのプログラムを実行する上での注意点です。</p>
<div class="sc_frame_wrap orange">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid orange">
<ol>
<li><strong><span style="color: #ff0000;"><span style="color: #000000;">プログラミングを実行中は</span>プレイヤー（つまり自分自身）を絶対に動かさないこと！</span></strong></li>
<li><strong>プログラムを実行する前に「compass」コマンドを実行して位置を確認！</strong></li>
<li><strong>あまり無茶な動かし方をすると、正常に動かなくなる可能性もあります！</strong></li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>プログラミングを実行中はプレイヤー（つまり自分自身）を絶対に動かさないこと！</h4>
<p>&nbsp;</p>
<p>「高さ自由のエレベーター」プログラミングを実行する際は必ずプレイヤーを操作しないようお願いします。</p>
<p>なぜなら動かしてしまうと建物の形がおかしなことになります。</p>
<p>&nbsp;</p>
<p>これはなぜかというと、Miecraft プログラミングで<strong>ブロックを置く処理を実行する際</strong>、</p>
<p>Minecraft のプログラミングの仕様上、<strong><span style="color: #3366ff;">プレイヤーの位置が原点</span>（つまり数学でいう（0,0,0）の点）になるから</strong>です。</p>
<p>&nbsp;</p>
<p>何言ってるかよくわからん人は下記図を見てください。</p>
<p>たとえばあるプレイヤーが水色の位置にブロックを置こうとします。</p>
<p>この場合、プログラミングで指定するブロックの配置場所は「プレイヤーの前の４ブロック」ですよね。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator3.png" alt="" width="341" height="490" class="aligncenter size-full wp-image-6089" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator3.png 341w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator3-209x300.png 209w" sizes="auto, (max-width: 341px) 100vw, 341px" /></p>
<p>ではこのプログラムを実行する間にプレイヤーが動いてしまうと下記のようになります。</p>
<p>プログラムでは「プレイヤーの前の４ブロック」に置こうとしますが、プレイヤーが自体が移動してしまうため、</p>
<p>ブロックの配置場所がずれてしまうということになります。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator4.png" alt="" width="453" height="522" class="aligncenter wp-image-6090" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator4.png 506w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator4-260x300.png 260w" sizes="auto, (max-width: 453px) 100vw, 453px" /></p>
<p>&nbsp;</p>
<p>こういう理由のため、「高さ自由のエレベーター」プログラミングを実行する際はかならずプレイヤーを動かさないでください！</p>
<p>（見上げるとか視点を変える動作はOKです！）</p>
<p>&nbsp;</p>
<h3>「build」コマンドを実行する前に「compass」コマンドを実行して位置を確認！</h3>
<p>&nbsp;</p>
<p>Minecraft の世界では前とか後ろという方向性は、Minecraftのもつ X軸、Y軸、Z軸で決定しますが、</p>
<p>プログラミング開発している場合はどちらが前か正直わからないという悩みがあります。</p>
<p>&nbsp;</p>
<p>わたしは独自に「<strong>compass</strong>」というコマンド作成しており、下図のように床に<span style="color: #ff0000;"><strong>赤いブロック</strong></span>が出力されたほうを<span style="color: #ff0000;"><strong>前</strong></span>とわかるようにしています。</p>
<p>なので、建物を建築する前はかならず「<strong>compass</strong>」コマンドを実行するようにしましょう！</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/compass.png" alt="" width="1151" height="647" class="aligncenter wp-image-6093" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/compass.png 1920w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-300x169.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-1024x576.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-768x432.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-1536x864.png 1536w" sizes="auto, (max-width: 1151px) 100vw, 1151px" /></p>
<p>&nbsp;</p>
<h3>あまり無茶な動かし方をすると、正常に動かなくなる可能性もあります！</h3>
<p>&nbsp;</p>
<p>これは Minecraft のプログラミングのスペック上仕方がないです。</p>
<p>例えば建物 10000階のエレベーターを作成しようとしても Minecraft 上では描くことができません。</p>
<p>なので、あまり無茶に動かさないようにお願いします。</p>
<p>&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、Minecraft でもPython プログラミングで「<span style="color: #3366ff;">高さ自由、色の指定自由</span>」のなんでもありの<span style="background-color: #ffff00;"><strong>エレベーター作成プログラミングを開発しました！！</strong></span></p>
<p>&nbsp;</p>
<p>YouTubeでも紹介していますので、ぜひそちらもご覧ください。</p>
<p>この記事が読者の Python 開発のお役に立てれば幸いです。</p>
<p>ではでは</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
