刚到手《Make Your Own Python Text Adventure: A Guide to Learning Programming》一书,打算将它的例程用木兰语言重写并改为中文标识符。一方面看看已重现的木兰功能对新手入门教程是否足够,顺便对之前小结的木兰与 Python 的语法对比进行补充。下面代码在木兰发布版本 0.0.15.0 运行通过。

该书三四五六章分别介绍用户输入、条件语句、函数、列表,直接跳到第七章:循环,因为例程包含了前几章的技术:

func 玩 {

库存 = ['匕首','金币(5)','面包棍']

println("逃出生天!")

loop {

输入 = 获取命令()

if ['n', 'N'].__contains__(输入) {

println("往北!")

} elif ['s', 'S'].__contains__(输入) {

println("往南!")

} elif ['e', 'E'].__contains__(输入) {

println("往东!")

} elif ['w', 'W'].__contains__(输入) {

println("往西!")

} elif ['i', 'I'].__contains__(输入) {

println("库存:")

for 家伙 in 库存 {

println('* ' + str(家伙))

}

} else {

println("不懂!")

}

}

}

func 获取命令 {

return input('行动:')

}

玩()

比较大的不适是不支持 Python 元素 in 列表 的判断语法,这里用 __contains__ 代替,尚待确认是否有更简便的木兰语法没发现。

可以用 .. 和 ..< 代替 Python 中的 range:

for 数 in 1..<11 {

因数 = []

for 除数 in 1..数 {

因数.append(除数) if 数 % 除数 == 0

}

println("`数`的因数:" + str(因数))

}

第八章:类型和个体

type 人 {

func $人(名称, 年龄, 爱吃的) {

$名称 = 名称

$年龄 = 年龄

$爱吃的 = 爱吃的

}

func $出生年份 {

return 2015 - $年龄

}

func $__str__ {

return "姓名:{} 年龄:{} 爱吃的:{}".format(

$名称, $年龄, $爱吃的[0])

}

}

各人 = [人("Ed", 11, ["hotdogs", "jawbreakers"])

, 人("Edd", 11, ["broccoli"])

, 人("Eddy", 12, ["chunky puffs", "jawbreakers"])]

年龄和 = 0

年份和 = 0

for 某人 in 各人 {

年龄和 = 年龄和 + 某人.年龄

年份和 = 年份和 + 某人.出生年份()

}

println("平均年龄:" + str((年龄和 + 0.0) / len(各人)))

println("平均出生年份:" + str(int(年份和 / len(各人))))

println("普查中的人:")

for 某人 in 各人 {

println(某人)

}

第九章、异常,需要木兰的 try...catch 语法,打算在 gitee 项目重现该语法后继续本系列。

Java文字冒险游戏方案,用木兰编程语言编写文字冒险游戏(前八章)相关推荐

  1. Java写文字冒险类游戏_用木兰语言编写文字冒险游戏(十三、四章),又一个特性发现...

    继续改写 Python 文字冒险游戏,第十三章的主要添加了玩家在每格的行动限制: func 选择命令(位置, 玩家) { 行动 = nil while !行动 { 可选行动 = 取可选行动(位置, 玩 ...

  2. 基于Java微服务方案的商品秒杀系统

    前言 项目是基于Java微服务方案的商品秒杀系统.是前后端分离的项目,前端用React,后端为Java的微服务架构.项目本身用于学习,在一些地方还不够成熟,欢迎各位多多交流. 客户端前端服务器 后台系 ...

  3. 5种方式将机器学习带到Java、Python以及Go等编程语言

    5种方式将机器学习带到Java.Python以及Go等编程语言 机器学习目前炙手可热,本文搜集了Java.Python以及go等编程语言中常见且实用的开源机器学习工具,对机器学习感兴趣的开发者或者准备 ...

  4. “完全自主”的木兰编程语言回应:承认基于Python二次开发,向中科院致歉

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 国产编程语言"木兰"面对换皮质疑,现在公开回应.并道歉了. 就在近期,一家国内公司中科智芯声称开发了首个跨平台.兼容多种 ...

  5. 第二章 java常用开发工具以及程序的编写

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念         2. java程序的开发的三个步骤        ...

  6. 木兰编程语言python_ulang(木兰编程语言)

    ulang(木兰编程语言)是款最近新推出的语言编程的软件,页面非常的简单,下载下来直接编辑就可以了,永久免费的,不会有任何的弹出窗口打扰. ulang(木兰编程语言)软件特色 Python是一种跨平台 ...

  7. 木兰编程语言当事人被停职:自主创新何时当得起科技自立?

    作者丨陈思.赵钰莹 闪亮登场:被指疑似 Python:当事人被停职.被冠以自主创新.国内首款... 称号的木兰编程语言,在短短几天内上演了一出"闹剧". 1 月 17 日,木兰编程 ...

  8. Java 会是首选的最佳编程语言吗?

    哪一门编程语言是首先应该学习的编程语言?Java编程语言值得我们开始学习吗?如果把Java作为首个要学习的编程语言,它的好处有多大?对于初学者来说,哪种编程语言是最好的,我应该是从Java,还是从Py ...

  9. python中科院_“完全自主”的木兰编程语言回应:承认基于Python二次开发,向中科院致歉...

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 国产编程语言"木兰"面对换皮质疑,现在公开回应.并道歉了. 就在近期,一家国内公司中科智芯声称开发了首个跨平台.兼容多种 ...

最新文章

  1. html 逗号用什么替换,字符串用javascript数组中的逗号替换“↵”
  2. linux更新驱动脚本,编写Linux驱动常见错误(不断更新)!
  3. min3d 引擎学习笔记之一
  4. python numpy创建矩阵、并归一化_每通道以numpy为单位对一批图像进行归一化处理...
  5. 单点登录Redis存储Session及SessionId问题说明与集群实战-3
  6. 如何生成自己的Yaas Service yaas
  7. CentOS7上GitLab的使用
  8. Selenium-WebDriver基本使用和API--1
  9. Nginx服务的ssl认证和htpasswd认证
  10. android5.1禁用通知栏,android-阻止通知栏
  11. jQuery窗口调整大小
  12. Netty之Channel、NioEventLoopGroup、客户端connect方法总结
  13. 【JAVA基础】Java基础之-代理详解
  14. System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in us
  15. 大数据与云计算有什么关系?
  16. Paper reading (七十九):A subset of the core rumen microbiome dictates cow productivity and emissions
  17. 终于有人把大数定律讲明白了
  18. php 将信息写入文件格式,PHP 将信息写入文件
  19. unity 跨平台动态生成二维码 免费下载
  20. flask_restful中的输出域(Resource、fields、marshal、marshal_with)

热门文章

  1. html导出pdf的四种方式
  2. 车用芯片商争相杀入安全等级竞赛:目标ASIL D
  3. HLW8110电耗采集芯片的硬件设计和软件驱动方法
  4. 从音箱入门到高手必看知识(二)—— 音箱由哪几部分组成
  5. 北漂杭漂的程序员,是如何买到第一套房子?
  6. Liquid Telecom推出泛非Wi-Fi漫游枢纽
  7. 手绘线条一直画不直_什么?直线画不直?戳进来,你会满载而归!
  8. javaweb sso_试驾SSO
  9. informix报错244_informix锁
  10. 线性代数学习笔记——第八讲——矩阵的初等变换