《我的世界》Python编程入门(8)建造房屋

article/2025/7/26 10:37:50

一、字典

首先,复习下前面学习的一些Python内置数据类型:
字符串在表示上有什么特点?数字呢?
Python内置的数据类型主要有:数字、字符串、列表、元组、字典。

1.1 字典的基本概念

字典(dict或者dictionaries)是一种可变(mutable)集合(collections),可以存储各种类型的数据
集合说明这种数据类型由多个元素构成
可变指的是元素可增删改
字典用{ } 表示开始和结束,字典的元素(item或element)为键:值对(key:value),键值用:分隔,元素用 , 分隔。

案例1:

d={'a':1,'b':2,'c':3}
#为具有3个元素的字典,
print(type(d))
结果为<class 'dict'>b={}
#b为空字典

1.2 字典的基本特性

元素的键必须在字典中是唯一的!
元素的键和值具有一一对应关系!

案例2:
a={'a':1,'a':2}
print(a)
结果为{'a': 2}
#'a':1被覆盖掉了

字典的这两个基本特性可以用于搜索或去重。(想想新华字典是不是可以通过拼音或者偏旁部首快速查到对应的字)

1.3 字典元素的基本操作

1.3.1 新增或修改元素

格式:字典[键]=新值
注意:如果原字典中没有对应的键则为新增元素,若已存在该键则为修改元素
案例3:

a={'a':1}
a['a']=2
print(a)
#结果为{'a': 2}
a['a1']=2
print(a)
#结果为{'a': 2, 'a1': 2}

1.3.2 访问字典元素

字典元素访问的核心为按元素的键访问,得到的是对应的值。
格式:字典[键]
注意:若键不存在,则会报错!
案例4:

a={'a':1}
print(a['a'])
#结果为1
print(a['b'])
#结果为
Traceback (most recent call last):File "<stdin>", line 1, in <module>
KeyError: 'b'

1.3.3 删除元素

格式:del 字典[键]
注意:如果被删除的元素不存在,则会报错。
案例5:

a={'a':1}
del a['a']
print(a)
#结果为{}
del a['a']
#结果为
Traceback (most recent call last):File "<stdin>", line 1, in <module>
KeyError: 'a'

二、案例:建造房子

2.1 空气方块

block.AIR.id可以把方块设置为空气,即清除掉对应区域

2.2 setBlocks()方法

作用:将一个3D区域内的所有方块设置为一种相同的方法。
参数:7个,前6个为2组坐标,即3D区域的对角线端点坐标,最后一个参数为方块类型。
案例6:创建立方体

import mcpi.minecraft as minecraft
import mcpi.block as blockmc = minecraft.Minecraft.create()
pos = mc.player.getTilePos()mc.setBlocks(pos.x+2, pos.y, pos.z, pos.x+12, pos.y+10,pos.z+10, block.DIAMOND_BLOCK.id)

2.3 综合案例:建造房子

房屋要求:
在这里插入图片描述

案例分析

先建造一个立方体,再掏空立方体,只留下表面。
得到x轴与y轴最中间的坐标点
根据设计图规划房子
石头:COBBLESTONE
空气:AIR
玻璃:GLASS
木材:WOOD
羊毛:WOOL

案例参考效果

在这里插入图片描述

案例代码

import mcpi.minecraft as minecraft
import mcpi.block as block
#先导入所需模块,然后连接游戏
mc = minecraft.Minecraft.create()
#size表示所建房屋的大小,改变size可以改变房子的大小
size = 20
#获取玩家所在坐标点
pos = mc.player.getTilePos()
x=pos.x
y=pos.y
z=pos.z
#midx、midy为正面方向房子在x、y轴上的中间点,便于计算窗户和门的坐标
#如果房子大小改变,窗户、门的位置也会随之变化
midx = x + size/2
midy = y + size/2#根据size建造一个实心立方体
mc.setBlocks(x, y, z, x+size, y+size, z+size, block.COBBLESTONE.id)
#将立方体的内部掏空
mc.setBlocks(x+1, y, z+1, x+size-1, y+size-1, z+size-1, block.AIR.id)
#实现门,midx代表了x轴坐标的中间位置
mc.setBlocks(midx-1, y, z, midx+1, y+3, z, block.AIR.id)
#填充玻璃窗户
mc.setBlocks(x+3, y+size-3, z, midx-3, midy+3, z, block.GLASS.id)
mc.setBlocks(midx+3, y+size-3, z, x+size-3, midy+3, z, block.GLASS.id)
#使用木材方块建造一个屋顶
mc.setBlocks(x, y+size, z, x+size, y+size, z+size, block.WOOD.id)
#在房子内增加一个羊毛地毯
mc.setBlocks(x+1, y-1, z+1, x+size-1, y-1, z+size-1, block.WOOL.id)

本课重难点

  1. 字典的基本概念
  2. 空气方块和setBlocks方法的使用
  3. 如何结合案例计算坐标点

http://chatgpt.dhexx.cn/article/cWmHO0ly.shtml

相关文章

DEM数字高程数据之高程网格格式转换

上一篇文章介绍了DEM数字高程数据的下载及matlab处理,这篇介绍制作固定大小的高程网格格式数据。 高程网格格式数据即为点云数据,后缀名为.xyz。在有些场合需要固定大小的高程网格格式数据,100100或者200200的,在地理空间数据云上下载的DEM数据往往数据量很大,不符合诗句需…

ASTER GDEM v3.0高程数据批量下载

目录 1.写在前面 2.数据集简介 3.数据下载 少量数据下载 大量数据下载 1.写在前面 ASTER GDEM v3.0数据下载网址需要魔法&#xff0c;另外推荐使用谷歌浏览器&#xff0c;方便后续使用插件。 下载是免费的&#xff0c;但是要有urs.earthdata.nasa.gov的账号&#xff0c;…

ENVI将高程数据拼接并转换为.dem或.dat_bil格式——以GDEM数据为例

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、导入tif文件二、拼接生成.dat三、.dat转换为.dat_bil与DEM四、与DEM相关的其他格式转换 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xf…

数据禾|全国10米DEM数字高程数据

区 域&#xff1a; 中国 尺 度&#xff1a; 10米 格 式&#xff1a; 栅格 时 间&#xff1a; 2018年 时 相&#xff1a; 年 数字高程模型&#xff08;Digital Elevation Model)&#xff0c;简称DEM&#xff0c;是通过有限的地形高程数据实现对地面地形的数字化模拟&#xff0…

DLR、ASTER GDEM、SRTM、GMTED2010等高程数据简介

数据简介摘自博文[http://blog.sina.com.cn/s/blog_720f853f01014hub.html] 但由于原文时间较久&#xff0c;所提供的网址几乎也都需要翻墙&#xff0c;就本人所了解&#xff0c;部分可在地理空间数据云[http://www.gscloud.cn/]下载 常见DEM数据&#xff1a; 1.DLR之SRTM X…

DEM高程数据的获取、合并与坐标转换

DEM高程数据的获取、合并与坐标转换 一、DEM数据的获取二、数据合并三、投影转换方法一四、投影转换方法二 今天用DEM数据做了一个坡度分析&#xff0c;数据使用过程中涉及到投影坐标转换&#xff0c;由于不是很熟悉所以费了一番功夫。经过一番折腾总结出两个方法&#xff0c;方…

OSG加载DEM高程数据

本文采用编辑earth文件的方式加载DEM高程数据 test.earth文件描述 <map version"2"><image driver"xyz" enabled"true" name"gaode_sat-1" profile"global-mercator" url"http://webst0[1234].is.autonavi…

ArcGIS DEM数字高程模型数据的生成

1、基本分析方法 GIS做地形分析的基本步骤其实是非常简单的&#xff0c;网上也有非常多的教程进行阐述&#xff0c;其实大家按这个步骤也基本能做出来&#xff0c;但问题就出现在每个人所使用的基础数据都多多少少有不同的问题&#xff0c;因此在操作过程中就不同程度的受阻&a…

30米分辨率的DEM地形数据——STRM高程数据

DEM地形数据是我们在各种研究和设计中经常使用的数据&#xff01;之前我们分享过源于GEBCO组织的全球范围的500米分辨率的DEM地形数据&#xff08;可查看之前的文章&#xff09;&#xff0c;这个数据的优点是数据很小&#xff0c;在大区域分析的时候也不会卡顿&#xff0c;缺点…

osgearth加载mapbox在线高程数据

先看一下效果&#xff1a; osgearth加载在线地图这里就不介绍了&#xff0c;比如osm、mapbox、天地图等&#xff0c;如果有哪位同学需要&#xff0c;我可以下次介绍一下~~~ 众所周知&#xff0c;高程数据一直是比较珍贵的&#xff0c;之前是加载谷歌地球的高程&#xff0c;但是…

GEE:快速下载数字高程DEM数据

DEM数据下载&#xff0c;使用SRTM Digital Elevation Data Version 4&#xff0c;一个2000年 的全球高程数据 。下载以后的DEM不用再做裁剪&#xff0c;可以直接使用。 也可以导入下面这个分辨率30米的DEM数据&#xff0c;搜索一下就可以了。 NASADEM: NASA NASADEM Digital El…

按方位提取高程数据的方法

1. 问题的描述 根据经过Lambert变换后显示的地图设置方位&#xff0c;以正北方向为零度&#xff0c;顺时针旋转的角度为相应的方位角。以站址为中心&#xff0c;沿相应的方位提取高程数据&#xff0c;形成某指定方位的随距离变化的高程数据。所获得的高程数据尚未考虑地球曲率…

DEM高程数据的获取和应用(全国DEM数据可直接下载)

DEM是数字高程模型的英文简称(Digital Elevation Model)&#xff0c;是研究分析地形、流域、地物识别的重要原始资料。由于DEM 数据能够反映一定分辨率的局部地形特征&#xff0c;因此通过DEM 可提取大量的地表形态信息&#xff0c;可用于绘制等高线、高程图、坡度图、坡向图、…

获取高程数据并生成等高线

从地理空间数据云下载高程数据非常方便&#xff0c;码一波下载方法。 高级检索 选择数据集 选择数据集为DEM高程数据&#xff0c;你想下载的数据产品。 搜索&#xff0c;下载 选择地区&#xff0c;地区选择主要有行政区域击搜索&#xff0c;点击如箭头所示图标即可下载。可…

裁剪DEM高程数据

裁剪DEM高程数据方法 对DEM高程数据&#xff08;tif文件&#xff09;方法较多&#xff0c;现将使用的方法进行总结&#xff0c;内容主要包括三个方面&#xff1a; 使用ARCGIS裁剪使用globalmapper裁剪使用MATLAB裁剪 1、使用ARCGIS裁剪 Arcgis将一幅影像裁剪成一幅或多幅&a…

12.5m高程数据DEM,导入大疆精灵4RTK,M300仿地飞行

点赞及加关注&#xff0c;即可获得——12.5m高程数据DEM&#xff0c;记得私信我——回复 “12.5m高程数据DEM” 领取哦。 文末有视频教程连接。 下面进入教程正文。 全国12.5米高程数据&#xff0c;是ALOS卫星的测绘成果&#xff0c;ALOS卫星于2006年1月24日发射&#xff0c;同…

GlobalMapper20使用控制点对地形数据(高程数据)进行高程纠正(高程拟合/纠偏/配准)

序&#xff1a;为什么要对高程数据进行控制点纠正 1.经常因为拿到的地形数据非当前坐标系&#xff0c;高程基准也不一样&#xff0c;需要进行投影转换调整高程基准 此情况一般一个控制点就够了&#xff0c;对地形进行整体的抬升或者下降。 2.实测数据和基于卫星、航测等生成…

高精度数字高程数据1m的dem

最近一直在做一个三维场景的项目&#xff0c;老板一直让我下载高精度的数据&#xff0c;从而构建三维场景&#xff0c;一开始在各种网站上下载如中国科学院镜像站点下载&#xff0c;德国航天局的DLR数字高程数据&#xff0c;美国航天局NASA网站上等一些地方下载&#xff0c;基本…

地理高程数据SRTM3简介

1. SRTM简介 SRTM&#xff08;Shuttle Radar Topography Mission&#xff0c;航天飞机雷达地形测绘使命)是美国太空总署&#xff08;NASA&#xff09;和国防部国家测绘局&#xff08;NIMA&#xff09;以及德国与意大利航天机构共同合作完成联合测量&#xff0c;由美国发射的“…

国内外高程数据介绍

目前网上有多种全球高程数据&#xff0c;国内在这方面也进步喜人&#xff0c;资源三号目前已放出来的卫片给了不少惊喜&#xff0c;其高程数值得期待。但资源三号的高程数据放出来还需等待&#xff0c;过去两三年全球高程数据发展相当迅猛&#xff0c;DLR放出了相当高精度的数据…