python 文字冒险游戏_用木兰语言重写 Python 文字冒险游戏(九到十一章)

该博客介绍了如何使用木兰语言重写Python的文字冒险游戏,详细展示了第十一章新增的游戏地图和地块类型。文章提到木兰语言版本0.0.15.1已发布,游戏代码开源在Gitee,并指出由于try...catch语法尚未完成,异常处理部分被略过。同时,讨论了木兰语言在模块引用规则上与Python的区别和并发问题。
摘要由CSDN通过智能技术生成

续前文,继续到第十一章,期间根据须要对些许木兰语言功能进行了重现,并发布了木兰版本 0.0.15.1 。游戏例程代码已经开源在 gitee,第十一章运行效果以下,欢迎提 issue。javascript

b1ffd03f25475b9bc3c4115f6f33cc89.png

注:因为 try...catch 语法仍然期待合做者一同完成(见此文末),所以例程中的异常处理部分暂且略过,不影响游戏功能。java

下面是第十一章相比第八章新添加的主要部分,世界.ul,用于设定玩家可走到的每格的情况,为以后的打怪等等作准备:git

type 地块 {

func $地块(x, y) {

$x = x

$y = y

}

func $介绍 {

throw NotImplementedError("请建立子类")

}

}

type 起始位置 : 地块 {

func $介绍 {

return "\n " +

"你发现身处山洞,壁上有根摇曳的火把。\n " +

"能够看到四条出路,每条都阴暗摄人。\n\n"

}

}

type 日常位置 : 地块 {

func $介绍 {

return "\n " +

"此处平淡无奇\n\n"

}

}

type 取胜位置 : 地块 {

func $介绍 {

return "\n " +

"远处有道亮光……\n " +

"……越近越亮!是阳光!\n\n\n " +

"重见天日了!\n"

}

}

地图 = [

[nil, 取胜位置(1,0), nil],

[nil, 日常位置(1,1), nil],

[日常位置(0,2), 起始位置(1,2), 日常位置(2,2)],

[nil, 日常位置(1,3), nil]

]

func 走到(x, y) {

return nil if x < 0 or y < 0

//try:

return 地图[y][x]

//except IndexError:

// return nil

}

原书第九到十一章基本在逐渐完善游戏功能,涉及的语言语法并很少。所以木兰 0.0.15.1 仅添加了 throw 语法和 isa 内置函数(与 Python 的 isinstance 对应)。但期间也发现尚待深究的问题,如引用模块所用包路径与 Python 规则不一样。并发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值