在Minecraft(我的世界)中学Python编程——起步篇
标签:
教育it娱乐杂谈 |
分类: IT |
在Minecraft(我的世界)中学Python编程——起步篇
作者:博睿 http://blog.sina.com.cn/viplog
很多人觉得学习Python编程是一件枯燥的事。有没有什么使学习更有趣呢?今天我就来介绍一种有趣的学习方法,将学习Python编程与Minecraft(我的世界)这个游戏相结合,让你在玩中就学会了Python编程。
适应人群:青少年、游戏爱好者、编程爱好者
今天我们来讲起步篇,达到如下2个目标:
一、学习编程环境的搭建
二、做一个简单的例子
一、学习编程环境搭建
1.1下载软件或需要安装的程序
Java https://www.oracle.com/java/technologies/javase-downloads.html#javasejdk
git https://git-scm.com/download/win【如下下载报错,请使用GoogleChrome浏览器重试一下】
Minecraft(我的世界)服务器程序
anacondaPython编程环境 Anaconda2-5.3.1-Windows-x86_64.exe【注意要下载anaconda2.x版本的https://repo.anaconda.com/archive/,目前最新的3.x版本anaconda3还不能支持我的世界编程】
Minecraft(我的世界)客户端程序 https://pan.baidu.com/s/1JkB5ydUjLRE7WzoGtlNhtg【如果下载链接失效,请到我的http://blog.sina.com.cn/viplog博客留言】
mcpipy开发接口安装
1.2 Java安装
执行安装程序,一路“下一步”。安装完成后可能需要重启操作系统。
安装成功后,在cmd窗口下执行“java-version”显示类似于如下信息,说明安装成功。

1.3 git安装
安装过程有很多个性化设置,这里我们一路“next”即可。
安装成功后,在cmd窗口下执行“git--version”显示类似于如下信息,说明安装成功。


1.4 Minecraft(我的世界)服务器程序下载、运行
注意:此步骤需先完成git安装后才能进行
从开始菜单,打开“GitBash”可以看出git命令行,执行如下命令:
$gitclonehttps://github.com/TeachCraft/TeachCraft-Server.git

执行结果显示100%后,我们就得到了Minecraft(我的世界)服务器程序。如果不知道下载到哪里了,可以在上述GitBash提示符下继续执行pwd以及ls查看目录所在。一般默认目录与当前用户的目录一致。

然后,使用Windows的资源管理器打开该目录。在目录内新建一个文本文件“启动本地我的世界服务器.bat”,编辑该文件内容为:
java-Xms1G-Xmx1G-jarMinecraft_Server.jar
双击执行“启动本地我的世界服务器.bat”。

这样我的世界的服务器端就好了。
1.5 anaconda Python编程环境
注意要下载安装anaconda2版本不要用anaconda3.因为接口代码只支持Python2。

anaconda2的安装依旧是一路next。
安装完成后,我们可以在开始菜单看到anaconda2。这里我们主要使用Spyder(一个集成开发环境)。

1.6 Minecraft(我的世界)客户端程序
程序下载后,解压执行目录中的“点击启动.exe”。
启动游戏后,我们选择“多人游戏”。

点击添加服务器,输入服务器所在机器的IP地址,如果是本机运行,也可以录入127.0.0.1。
然后选择该服务器,登录连接,进入游戏。

1.7 mcpipy开发接口安装
在Git Bash里面:
$ gitclonehttps://github.com/brooksc/mcpipy.git
显示百分之百时下载完成。

二、Python编程与Minecraft(我的世界)联调例子程序
下面开始正式编程。
首先我们启动anaconda2里面的Spyder。
复制粘贴如下代码
import mcpi.minecraft asminecraft
from mcpi import block
mc=minecraft.Minecraft.create()
mg="101001"
mc.postToChat(mg)
mc.postToChat('TTTTTTTT')
#mc.postToChat("HelloWorld!!")
# 获得玩家坐标
pos =mc.player.getPos()
# 保存玩家坐标为更易用的形式
# 除了下面的写法,还记得tuple解包吗?试试如何实现同样的效果。
x = pos.x
y = pos.y
z = pos.z
# 设置玩家旁边的一个block 为草地材质
mc.setBlock(x + 1, y,z,block.GRASS.id)
# 设置一个 厚度为 2,高 21, 长 6的墙
mc.setBlocks(x + 1, y, z, x +2,y+ 20, z+5, block.STONE.id )
# 玩家走远一点,又会被传送回之前保存的位置
mc.player.setPos(x,y,z)

然后在Spyder将py程序文件,另存到自己新建的比如MyPython目录下。
然后,复制mcpipy目录下的mcpi目录到上述新建的MyPython目录下。【这步很重要】
点击绿色的执行按钮。
这时候我们可以在客户端界面上看到如下图红圈内的消息。这是程序代码向客户端发送的消息。

这段程序用短短几段代码,设置了一堵高耸入云的墙,这堵墙 厚度为 2, 高 21, 长 6 ,如下图。

大功告成!

加载中…