树莓派整蛊之”突然出现的蜘蛛”

上次发了一个制作整蛊坐垫的文章,貌似有些朋友还不过瘾,那咱们这次就来个升级版 —— “突然出现的蜘蛛”。

我们将制作一个吓人的蜘蛛盒子,让里面的蜘蛛突然出现在人们面前,并发出恐怖的声音。

在启动项目之前,你得先知道:

1、如何用激光切割机制作符合规格的箱子(放蜘蛛和其他道具用)

2、如何控制gpio输入和输出设备

4、如何为了特定目的用函数将命令组合在一起

5、如何使用pygame播放声音

6、如何利用脉宽调制(PWM)信号来控制伺服电机

所需电子硬件:

1、圆按钮

2、伺服电机

3、扬声器

4、LED灯

5、330欧姆电阻器

6、电池组或充电宝

7、树莓派

制作盒子:

要制作这个盒子,我们建议用3毫米厚的胶合板进行激光切割。最简单的方法是找一个本地的创客/黑客空间,问他们是否可以帮助。

许多学校现在也有小型激光切割机,所以你可以问问相关的设计和技术部门是否可以提供帮助。

如果找不到激光切割机,也可以用硬纸板做这个盒子。

盒子的设计图:

https://github.com/IoToutpost/grandpa-scarer/tree/master/en/resources

盒子图形的切割设置:

红色:描边即可

黑色:直接切割

所需切割面积为450 x 400毫米。如果你的激光切割机床比较小,那么用Inkscape或Adobe Illustrator编辑一下,把它分成两张。

由于激光切割机型号较多,且操作起来有一定危险性。不建议新手去摸,最好把该工作交给熟练工。

激光切割出盒子

把盒子粘合:

用热胶枪把盒子的边粘在一起。如果胶水到处都是,不要担心。没有人看到盒子里面。

附上铰链:

用两个铰链把盖子的一侧固定住,在盒盖附近形成活动连接,螺丝一定要拧紧。

用好伺服电机:

接下来我们要用到伺服电机,其内置控制电路,最大可调到180度。

系统会通过非常快的速度打开和关闭一个GPIO管脚来控制伺服电机。脉冲的长度(也称为脉冲宽度)控制着电机指向哪个方向。

这些信号被称为脉宽调制(PWM),允许你做各种各样的事情,从LED调明暗到驱动电机。

树莓派不支持以标准方式生成这些PWM信号,因为它没有专用的时钟系统。

不过在这个项目中,我们依然使用软件生成PWM信号。这种方法的缺点是信号并不完美,因此伺服电机可能会来回抖动。

伺服电机接线

该电机有三个引线。通常,棕色/黑色的是地线,红色的是5v(微型电机供电),黄色/橙色是信号。我们将使用公对母跳线连接电机的母引脚和树莓派的GPIO引脚。

首先将电机的棕色/黑色线连接到树莓派的引脚9。然后将伺服电机的红线连接到树莓派的引脚2。最后,将电机的控制线(黄色/橙色)连接到Pi上的引脚11。

这是接线示意图:

接线按钮

为了控制蜘蛛出现的时机,你需要一个物理按钮。

首先,你要将两根导线的一端分别接到按钮的两个管脚上。这两根导线尽量长一点,如果你不想站在盒子边上操作的话。

两根导线的另一端,要分别接到树莓派的GPIO引脚上。一根线从按钮连接到Pi的第6引脚,另外一根线从按钮连接到Pi的第18引脚。

记得用胶带之类的固定好,然后试一下是否能通。

然后开始敲代码:

import RPi.GPIO as GPIO
import time
import pygame
import random

GPIO.setmode(GPIO.BOARD)

GPIO.setup(11, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)  
GPIO.setup(18, GPIO.IN, GPIO.PUD_UP)
p = GPIO.PWM(11, 50)
p.start(0)

def waitButton():
    GPIO.wait_for_edge(18, GPIO.RISING)

def sound():
    sounds = [
        "Female_Scream_Horror-NeoPhyTe-138499973.mp3",
        "Monster_Gigante-Doberman-1334685792.mp3",
        "Scary Scream-SoundBible.com-1115384336.mp3",
        "Sick_Villain-Peter_De_Lang-1465872262.mp3",
    ]

    choice = random.choice(sounds)
    
    pygame.mixer.init()
    pygame.mixer.music.load(choice)
    pygame.mixer.music.play()

    # Wait for the sound to finish
    while pygame.mixer.music.get_busy():
        continue
    time.sleep(0.3)

# Main program section
while True:  # Forever loop (until you hit ctrl+c)
    try:
        waitButton()           # Wait until the button is pushed
        p.ChangeDutyCycle(3)   
        time.sleep(0.1)        # Allow the servo to move
        sound()                # Play a sound file
        time.sleep(2)          
        waitButton()           # Wait until the button is pushed
        p.ChangeDutyCycle(12)  
        time.sleep(1)          
    except(KeyboardInterrupt):  
        p.stop()               # Stop the PWM
        GPIO.cleanup()         # Resets the GPIO pins

播放声音:

当你按下按钮时,你的蜘蛛就会跳出来,然后发出很大的声音。

可是树莓派没有任何内置扬声器,所以你要使用一个小型便携式扬声器,把插头塞到到Pi的3.5毫米音频插孔即可。

完整装箱:

现在你需要把所有的电子设备都装进盒子里。因为树莓派是整个项目的大脑,所以你要先把它装上去。

如果你是按上面设计图纸制作的盒子,你应该可以看到一个激光雕刻的侧边区域,那里有四个螺丝固定孔。用3D打印垫片和M2.5螺丝将树莓派固定在这个区域。

蜘蛛要选好,与盒子的大小要匹配。

将蜘蛛绑好线后,反着放进盒子,把伺服电机固定在盒子的开盖处,等会要用它扣住盖子。

合上盖子,把按钮到树莓派的两根线绑到一起。

最后,把盒子安全的固定到房檐或门框上。别挂在不受力的地方。千万别按钮一按,蜘蛛没出来,盒子掉下来砸到人。

祝大家玩的开心~

PS:如果要加入预警提示可以在电路中加LED灯,再串接一个330欧的电阻,以便在蜘蛛出现前先闪一下。

相关代码和设计:

https://github.com/IoToutpost/grandpa-scarer/

素材:Raspberrypi.org

编译:IoT前哨站

提高开源软件安全性 ——Linux基金会推出Red Team项目

为了提高开源软件的安全性,Linux基金会启动了Red Team项目,该项目旨在孵化开源安全工具,以支持网络范围自动化、容器化测试实用程序、二进制风险量化以及标准验证和改进。

Red Team Project的主要目标是保护那些正在使用开源软件的项目。他们使用攻击者相同的工具、技术和程序,但以建设性的方式提供反馈并帮助企业/机构的项目更安全。

为了解更多信息,Linux基金会采访了Google的客户工程师Jason Callaway,以了解有关Red Team项目的更多信息。

Linux Foundation:你能简单介绍一下Red Team项目及其与Fedora Red Team SIG的历史吗?

Jason Callaway:我在Def Con 25与Red Hatters的同事一起创建了Fedora Red Team SIG。我们有一些想要构建的漏洞利用映射工具,我受到了Mudge和Sarah Zatko的Cyber-ITL项目的启发。我想对他们的方法进行开源实现。Fedora项目慷慨地提供托管,并且是极大的倡导者。现在我在谷歌,我很幸运能够将Red Team作为我的20%项目,我希望能够扩大其影响力并建立一个更加供应商中立的社区。Fedora正在与LF合作,支持我们的项目分支,并将在我们的技术指导委员会中有代表。

LF:该项目的一些短期和长期目标是什么?

Jason:我们最直接的目标是恢复正常运转。这意味着迁移GitHub repos,建立我们的网络和社交媒体,最重要的是,回到编码。我们正在组建一个技术指导委员会,我认为这将成为帮助我们保持专注和有影响力的真正力量倍增器。我们还将在华盛顿特区举行一次聚会,这场聚会将在演讲者和实用的漏洞利用黑客马拉松之间进行为期两周。

LF:为什么开源对项目很重要?

Jason:开源在很多方面对我们很重要,但主要是因为这是正确的做法。网络安全是一个影响个人、企业、政府和每个人的全球性问题。因此,我们必须使开源软件更安全。

有很多人在努力,以典型的开源方式,我们是站在巨人的肩膀上。但Red Team项目希望为开源软件安全提供一些明显的积极价值。

LF:社区如何更多地学习并参与其中?

Jason:我曾经有一位经理人喜欢说,“80%的工作只需要露露脸。”当然他在开玩笑,但这肯定适用于开源项目。要了解更多信息,你可以亲自到场,或通过Google Hangout参加我们的聚会,订阅我们的邮件列表,并在GitHub或我们的网站上查看我们的项目。

项目地址:

https://github.com/redteam-project

5G虽然火热,Wi-Fi也在升级

随着5G网络的到来,很多人都会觉得Wi-Fi的重要性是不是没那么大了?

事实上, Wi-Fi也在紧锣密鼓的升级。

20多年以来,从2G到5G,移动网络的传输速率提升了近20倍。而Wi-Fi网络,也从曾经的802.11a,发展到802.11ax,也就是传说中的Wi-Fi 6,即将进入我们的日常生活。

其带宽、网络容量、覆盖范围等等指标都有大幅度的提升。技术的进步也将为我们的生活带来更多的方便,比如物联网的普及等等。

Wi-Fi 联盟即将在 2019 年 8 月敲定最新的 Wi-Fi 6(又称 802.11ax)无线网络标准。

为抢占先机,高通和联发科等厂商都在抓紧部署“准备就绪”的 Wi-Fi 6 路由器和终端。

比如高通的 QCA6390 芯片组。在启用 1024-QAM 双频段的情况下(5GHz + 2.4GHz / 80MHz 频宽),可提供高达 1.8Gbps 的 Wi-Fi 6 带宽。

Wi-Fi 6的特性,主要包括网络中单一终端吞吐量的提升、覆盖范围的扩大、联网终端更久的电池续航,以及对于最新安全协议WPA3的支持。

对于5G传输速度的飞跃,用户对于数据传输的速度需求会提升,因此Wi-Fi也必须进行升级,才能满足广大用户的需求。

众所周知,5G有eMBB,mMTC 和URLLC三大场景,Wi-Fi 6的方向也是类似的。Wi-Fi 6 优化了设备的的覆盖能力,可以让更多人同时使用,可以更好的支持智慧家庭、工业物联网等应用。

“当你身处东京火车站,挤在人群里看超级碗时,这些环境下的Wi-Fi体验将发生彻底改变,”Wi-Fi联盟营销副总裁凯文·罗宾逊(Kevin Robinson)表示。

当然,每一项新技术的落地,都需要有具体的行业标准来支撑。近日,Wi-Fi联盟已推出针对支持Wi-Fi 6标准的设备认证计划,预计将从2019年第三季度开始。

据悉,这一名为“Wi-Fi Certified 6”的认证计划,旨在确保基于下一代Wi-Fi技术打造的各种设备符合互操作性和安全性的行业标准。Wi-Fi联盟表示,该认证计划将为用户提供流媒体超高清电影甚至关键业务应用所需的容量、覆盖范围和性能。

Wi-Fi Certified 6支持使用MU-MIMO、波束成型和1024-QUAM等技术带来的更高数据传输速率和更大网络容量在内的高级功能。其他功能还包括在拥塞环境中提高性能,以及利用目标唤醒时间(TWT)提高电池寿命实现更高功效等。

ABI Research高级研究分析师Andrew Zignani在一份声明中表示:“Wi-Fi仍然是访问接入互联网的主要技术,它有着悠久的成功历史。Wi-Fi Certified 6将进一步提升Wi-Fi的作用,预计2022年Wi-Fi 6芯片组出货量将超过10亿。”

原作: 半导体观察

原文:https://www.jianshu.com/p/af2bf20d57a4

整理:IoT前哨站

十行代码就能写个整蛊玩具

有时候看国外的街头搞笑节目,经常会看到一种会出声的坐垫。

当不知情的人坐上去时候,椅子上的坐垫便会发出各种奇怪的声音。让人还误以为是自己造成的。

其实做这个并不难,如果用我们这套方法,可能只要十行代码就搞定了,而且还可以指定任意的音乐。

所需工具:

1、树莓派

2、小音箱

3、鳄鱼线和公母跳线各两条

4、几个夹子

5、铝箔

6、硬纸板

7、铜带和海绵若干

开始制作:

从硬纸板上剪两个圆圈,然后把铝箔纸粘在圆圈上。

用一些铜带把铝箔纸和圆纸板的边缘连接起来,做成两个盘子。

把海绵切成长方体,把它们粘在其中一个盘子的箔纸上,这样箔纸就不会互相接触,除非有人坐在盘子上。

它应该是这样的:

把两个盘子叠在一起,铝箔片相对而置。铜带部分不要接触。

你现在有一个“垫子”了。你可以把两个盘子粘在一起,或者用夹子或回形针,这样你就可以测试你的坐垫是否工作正常,并且很容易调试相关硬件。

接下来是树莓派插线位置:

将鳄鱼夹一头接在纸板的铜带部分,然后将另一头夹在所连接的跳线的外销上。两条线同样操作。最后的样子是这样。

硬件部分完成后,先连到树莓派上测试一下声音播放。

接好小音箱,然后在命令行播放你事先准备的wav格式音乐。比如:

aplay burp.wav

确定可以听见音乐之后,开始编码。用Python比较简单,十行就搞定了。

import os,random
from time import sleep
from gpiozero import Button
button = Button(2)

trumps = ['ben-fart.wav','ca-fart.wav','marc-fart.wav']

while True:
    button.wait_for_press()
    parp = random.choice(trumps)
    os.system("aplay {0}".format(parp))
    sleep(2)

三个音乐文件都要提前准备好,最后运行一下看看是否能跑起来。

小心地把“坐垫”放在沙发或椅子上。接好电源(最好用电池组),让程序保持在运行状态。然后……

如果整蛊成功,别忘记回来点个赞。

来源:Raspberrypi.org

编译:IoT前哨站

WebThings Gateway附加组件:扩展网关的功能

除了常规功能以外,WebThings Gateway还有一个附加组件系统。你可以用它来扩展网关的功能。

默认情况下已安装Web Thing、Zigbee和Z-Wave等组件,足以支持大量的商业设备。但是,如果有其他不同类型的设备要加进来。你会需要附加组件来增强对它们的支持。

根据需要找到并安装更多附加组件:

从“设置”菜单中选择“附加组件”。

如果首屏没看到你想要的组件,请单击右下角的“(+)”按钮浏览附加组件列表,然后选择“+ Add”以启用任何附加组件。

例如,你家里有TP-Link或HomeKit兼容的设备,你可以安装它们的附加组件,然后发现这些设备,并且配对。以便它们由你的IoT网关管理。

有些附加组件需要配置才能正常工作(例如Pulse、Weather、ONVIF)。另一些则在添加后立即工作(例如Virtual Things)。

适配器

适配器页面显示当前安装并激活了哪些插件。转到“附加组件”页面,你可以添加或删除系统中适配器。

新的组件将继续被开发,以便能管控更多新的设备。因此请定期检查以扫描列表中的附加组件。你可以在网关开发站点的issues选项卡中提交对额外设备支持的请求。

实验中的功能

你可以在“experiments”选项中启用智能助手和日志记录等实验中的功能。

从“设置”菜单中选择“实验”,然后勾选“启用智能助手”和“日志”。

使用智能助手

一旦启用,智能助手页面就会在主菜单中出现。它允许你用语音和消息命令来控制家里的设备。无论你是使用语音还是输入文本,都可以达到同样的效果。

Web页面会显示你最近发出的打字和语音命令,以及命令的结果。如果你所说的命令被误解或者没说全,请再试一次。记得对麦克风大声清晰地说话。

你可以给它一些指令,比如“打开厨房的灯”。它会回应你,并确认你的动作。到目前为止,它能够理解一组基本的命令来打开和关闭设备、设置级别,设置颜色和色温。

当你第一次点击麦克风图标时,你的浏览器将请求允许使用麦克风。在弹出对话框中,点击“记住这个决定”复选框,然后选择“允许”。

注意,在0.8网关版本中,基于浏览器的语音命令调用的是谷歌语音API,因此音频是在云端处理的。如果你在智能助手的文本框中输入一个命令,那将直接在本地处理,不需要连接到谷歌。

使用日志

一旦启用,日志页面将在主菜单中可见。单击右下角的加号图标,选择要记录的设备、属性以及要存储(日志数据)的持续时间。任何已连接的智能设备都能被记录,并在配置屏幕上可见。

好了,Webthings Gateway的高级功能差不多就到这里。其他的功能大家可以自行探索。

素材:iot.mozilla.org

编译:王文文

WebThings Gateway平面图:让智能家居的位置一目了然

在使用 WebThings Gateway 管控家里的智能设备以后,大家是不是觉得生活比以前方便一些了?

如果你设备少,或者房间不多。那倒是能记得各个设备的不同位置。

但要部署的智能设备和房间很多,怎么直观的区分它们在哪些房间呢?

我们来看一下 WebThings Gateway 的“Floorplan”,平面图功能。

该功能可以让你家中的所有智能设备位置,完全反映到 WebThings Gateway 页面上,你可以看到你家智能家居的整体布局,以及各区域设备的开关状态。你仍然可以单击图标来操作它们,或者查看该对象的详细视图。

创建一个平面布置图

首先你要先绘制屋子的平面图,并保存为数字图像。你可以用手画一个,然后给它拍照,或者使用illustrator工具(如果你用智能手机拍摄平面图,你可以直接从手机的浏览器把图片上传到你的网关上) 。

提示:使用 Inkscape 或 Sketch 之类的工具可将数字绘图保存为带有白线和透明背景的svg文件,以获得极简外观。

点击“平面图”页面右下角的铅笔图标进入编辑模式。将会出现一个“上载文件”按钮,选择要上载的平面图。

在平面图上传完成后,确保你仍然处于编辑模式,然后将插座和灯泡等图标从页面顶部拖到平面图上。单击右下角的勾号,搞定。

这下房间再多也不用担心了。设备在什么位置,是否在工作,一目了然。

素材:iot.mozilla.org

编译:王文文

怎样用WebThings Gateway管控你的智能家居

普通计算机联网要普通网关,物联网设备联网要用物联网网关。

物联网网关,作为一个新的名词,在物联网时代将会扮演非常重要的角色,它将成为连接感知网络与传统通信网络的纽带。作为网关设备,它可以感知网络与通信网络,以及不同类型感知网络之间的协议转换.既可以实现广域互联.也可以实现局域互联。

我们这次就在树莓派上搭一个物联网网关。

WebThings Gateway是一款面向智能家居的物联网网关,来自国际知名的Web浏览器厂商Mozilla。

安装所需要的核心零件:

1、 树莓派

2、SD卡

3、支持ZigBee或Z-Wave协议的USB适配器

WebThings Gateway 镜像地址:

https://github.com/mozilla-iot/gateway/releases/download/0.8.1/gateway-0.8.1.img.zip

安装步骤:

1、刷卡

2、插入USB适配器

3、通电

注:第一次启动可能要等2-3分钟,后面会快一些。

启动系统后,你会在Wi-Fi连接中看到一个名为 “WebThings Gateway XXXX” 的SSID,连上去。

此时会自动跳转到网关的Web管理页面,如果没有自动跳转,就在浏览器里输入“http://192.168.2.1”

然后你必须再次设置Wi-Fi连接,以便物联网网关能接到你家无线路由器上。

将Webthings联网后,系统会问你要不要创建个子域名。

下一步就是添加设备的环节了。

你可以把家里的智能灯泡、插座、门锁……都加进去。

一般的添加过程:

选择要添加的设备,并为其配对。这方面Zigbee和Z-Wave的都差不多。

灯泡拧入(配对时应点亮灯泡),插头插好。

电池驱动的设备,如门/窗传感器、运动探测器、按钮、调光开关、检漏器、温度传感器等等,也都要先通电。

远程控制和规则设置:

添加完相关智能设备后,你可以在手机或平板电脑上直接控制它们。在浏览器中输入WebThings的域名或IP,然后用你设置的用户名密码登录即可。

也可以在“规则”栏里面做设置,比如你想让卧室灯在晚上10点后自动熄灭。

当然,你也可以随时删除它们。

好了,开始享受物联网时代的智能家居生活吧!下一篇文章我再给大家讲WebThings的高级用法。

作者:王文文

Mozilla 推出物联网平台项目 WebThings

Mozilla 物联网团队宣布去年发布的物联网开放平台项目 Project Things 脱离实验阶段,并正式更名为 Mozilla WebThings。

Mozilla 的使命是确保互联网是一个全球公共资源,对所有人开放,所有人都可以访问。互联网将真正把人民放在第一位,个人能获得赋权、安全和独立。而 Mozilla 物联网团队的使命则是创建一种 Web of Things 实现去体现那些价值,帮助推动制定物联网的安全、隐私和互操作标准。

秉承了使命的产物 Mozilla WebThings 志在打破大厂只想绑架消费者使用自家路由器的局面,改变当前物联网生态的破碎现状,从而进一步降低市场物联网设备的售价。此前 Mozilla WebThings 已经历了两年的开发和七个季度的更新,已经引起了开发者和制造商社区的极大兴趣。

WebThings 让用户可以通过网页监控设备,它包括WebThings Gateway和WebThings Framework两个部分。其中,WebThings Gateway 是用于家庭智能网关的软件发行版,专注于隐私、安全和互动;WebThings Framework 可以帮助开发者构建可重复利用的软件组件集。

在宣布推出 WebThings 后,Mozilla 发布了新版本 WebThings Gateway 0.8。新版让用户可以私密记录并监控智能家居设备的数据,还添加了警报、日志的功能和网络设置 UI。

此外,Mozilla 还透露团队正在构建基于 OpenWrt(针对嵌入式设备的 Linux 操作系统)的 WebThings Gateway 版本。该版本将针对消费级无线路由器,本身就可以充当 Wi-Fi 接入点,而不仅仅是作为客户端连接到现有的无线网络。

有兴趣对项目进一步了解,可查阅 WebThings 官网

关于什么是物联网网关:

http://v.qq.com/x/page/r0867d7i4xq.html

微软发布“VSCode Remote” 让远程开发更自在

近期有很多微软 VSCode 编译器的新闻,最搞笑的是这个:

不过我们这次讲的不是 VSCode 的八卦,而是要给经常做远程调试的开发者介绍一个强力插件:“Remote Development”。

在给树莓派、香橙派等各种开发板做调试的时候,很多人是先登录到板载系统上,然后再开始操作的。

这倒还不是慢的问题,而是原本咱们 PC 或 Macbook 上强大的IDE派不上用场了。

为了解决这个问题,微软推出了“VScode Remote Development”。以便大家直接远程调试,不用再登录后操作了。

目前,Visual Studio Code Remote Development Extension Pack支持SSH、容器、WSL 三种模式。

对应的三个扩展:

Remote – SSH – 通过使用 SSH 打开远程计算机或者VM。

Remote – Containers – 把 Docker 作为你的调试环境。

Remote – WSL – 在 Windows Subsystem for Linux 中,像 Linux 一样开发。

不管你做嵌入式开发还是服务器开发,都可以通过这个插件简化工作。

如图所示,一位在做机器学习的朋友正在用SSH模式远程调试Python代码。

该插件下载地址:

https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack

安装前先确保你电脑上已经有“Visual Studio Code Insiders”。

更多物联网开发资讯,请关注“IoT前哨站”。

在文本冒险游戏中加入道具

上次发了一篇“Python写文本冒险游戏的要点”之后,有的朋友说形式太简单了,能不能在游戏中加入道具?

既然如此,我们这次就来给它升一级。

很多人都玩过“刺激战场”类的游戏,进一个房子就拼命捡枪捡子弹什么的。这些都是游戏人物的重要道具。

下面我们就继续以《回村》为例子,在其中加入道具拾取和过关判定。

先把游戏环境概念图画出来。

1、森林里有牛肉

2、小山里有红酒

3、湖泊边有强盗

获胜判定:

带着牛肉和红酒,避开强盗,回到村庄即获胜。否则游戏继续。

好了,现在就在代码中更新道具和强盗。

代码地址:

https://github.com/IoToutpost/Python_game

Gohome.py是之前的版本,Gohome_v0.2.py是我们加了道具的版本。

需要注意的是,我们现在用字典来存储地点、方向和道具了。这样对于数据读写来说会更方便。

Python中的字典是啥?

字典是Python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但是都存储在一个特定的键(Key)里。键可以是数字、字符串甚至是元组。

字典由多个键及与其对应的值构成的对组成。每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号括起来。字典中的键是唯一的,而值并不唯一。

好了,跑一下试试。

到此,一个简单的RPG游戏算是做好了。

如果想让游戏更好玩,要加的东西还很多。比如战斗元素,生命值,时间……探索无止境。

注:这个系列的文章是写给新手的,高手就不用看了哈。当然,欢迎指导,欢迎分享更有意思的版本。