Java文字冒险游戏方案,用木兰编程语言编写文字冒险游戏(前八章)
刚到手《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文字冒险游戏方案,用木兰编程语言编写文字冒险游戏(前八章)相关推荐
- Java写文字冒险类游戏_用木兰语言编写文字冒险游戏(十三、四章),又一个特性发现...
继续改写 Python 文字冒险游戏,第十三章的主要添加了玩家在每格的行动限制: func 选择命令(位置, 玩家) { 行动 = nil while !行动 { 可选行动 = 取可选行动(位置, 玩 ...
- 基于Java微服务方案的商品秒杀系统
前言 项目是基于Java微服务方案的商品秒杀系统.是前后端分离的项目,前端用React,后端为Java的微服务架构.项目本身用于学习,在一些地方还不够成熟,欢迎各位多多交流. 客户端前端服务器 后台系 ...
- 5种方式将机器学习带到Java、Python以及Go等编程语言
5种方式将机器学习带到Java.Python以及Go等编程语言 机器学习目前炙手可热,本文搜集了Java.Python以及go等编程语言中常见且实用的开源机器学习工具,对机器学习感兴趣的开发者或者准备 ...
- “完全自主”的木兰编程语言回应:承认基于Python二次开发,向中科院致歉
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 国产编程语言"木兰"面对换皮质疑,现在公开回应.并道歉了. 就在近期,一家国内公司中科智芯声称开发了首个跨平台.兼容多种 ...
- 第二章 java常用开发工具以及程序的编写
2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念 2. java程序的开发的三个步骤 ...
- 木兰编程语言python_ulang(木兰编程语言)
ulang(木兰编程语言)是款最近新推出的语言编程的软件,页面非常的简单,下载下来直接编辑就可以了,永久免费的,不会有任何的弹出窗口打扰. ulang(木兰编程语言)软件特色 Python是一种跨平台 ...
- 木兰编程语言当事人被停职:自主创新何时当得起科技自立?
作者丨陈思.赵钰莹 闪亮登场:被指疑似 Python:当事人被停职.被冠以自主创新.国内首款... 称号的木兰编程语言,在短短几天内上演了一出"闹剧". 1 月 17 日,木兰编程 ...
- Java 会是首选的最佳编程语言吗?
哪一门编程语言是首先应该学习的编程语言?Java编程语言值得我们开始学习吗?如果把Java作为首个要学习的编程语言,它的好处有多大?对于初学者来说,哪种编程语言是最好的,我应该是从Java,还是从Py ...
- python中科院_“完全自主”的木兰编程语言回应:承认基于Python二次开发,向中科院致歉...
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 国产编程语言"木兰"面对换皮质疑,现在公开回应.并道歉了. 就在近期,一家国内公司中科智芯声称开发了首个跨平台.兼容多种 ...
最新文章
- html 逗号用什么替换,字符串用javascript数组中的逗号替换“↵”
- linux更新驱动脚本,编写Linux驱动常见错误(不断更新)!
- min3d 引擎学习笔记之一
- python numpy创建矩阵、并归一化_每通道以numpy为单位对一批图像进行归一化处理...
- 单点登录Redis存储Session及SessionId问题说明与集群实战-3
- 如何生成自己的Yaas Service yaas
- CentOS7上GitLab的使用
- Selenium-WebDriver基本使用和API--1
- Nginx服务的ssl认证和htpasswd认证
- android5.1禁用通知栏,android-阻止通知栏
- jQuery窗口调整大小
- Netty之Channel、NioEventLoopGroup、客户端connect方法总结
- 【JAVA基础】Java基础之-代理详解
- System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in us
- 大数据与云计算有什么关系?
- Paper reading (七十九):A subset of the core rumen microbiome dictates cow productivity and emissions
- 终于有人把大数定律讲明白了
- php 将信息写入文件格式,PHP 将信息写入文件
- unity 跨平台动态生成二维码 免费下载
- flask_restful中的输出域(Resource、fields、marshal、marshal_with)