首页 > 编程知识 正文

Python开发我的世界,python代码画房子

时间:2023-05-04 19:39:44 阅读:277420 作者:4806

一、字典

首先,复习下前面学习的一些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']=2print(a)#结果为{'a': 2}a['a1']=2print(a)#结果为{'a': 2, 'a1': 2} 1.3.2 访问字典元素

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

a={'a':1}print(a['a'])#结果为1print(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 minecraftimport 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 minecraftimport mcpi.block as block#先导入所需模块,然后连接游戏mc = minecraft.Minecraft.create()#size表示所建房屋的大小,改变size可以改变房子的大小size = 20#获取玩家所在坐标点pos = mc.player.getTilePos()x=pos.xy=pos.yz=pos.z#midx、midy为正面方向房子在x、y轴上的中间点,便于计算窗户和门的坐标#如果房子大小改变,窗户、门的位置也会随之变化midx = x + size/2midy = 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) 本课重难点 字典的基本概念空气方块和setBlocks方法的使用如何结合案例计算坐标点

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。