MC中水方块的分析

最近玩《我的世界》(MineCraft)发现了一个有趣的现象:一桶水引发了一场山洪

先详细讲一下这个有趣的现象。本人打了一桶水上山,然后直接把水倒在了平地上,注意是平地,紧接着这个“水方块”就像一个泉眼一样产生水流并以最短的路径一路向山下流去,源源不断,直至流到山脚,沿途淹没了山腰上的一切,一切……

出于好奇,本人又做了众多试验,基本搞清楚了这种BUG现象形成的原因。

首先,我们做一些基本的猜想。MC是用Java这种面向对象的语言编写而成,故我猜想MC中每个“方块”都从属一个基类,该类至少包含了以下成员:位置坐标(应该是三维坐标)。然后“水方块”是这个基类下的一个派生类。那么“水方块”这个派生类究竟有哪些(函数)成员,导致了这个有趣的现象呢?下面根据实验我们一步步的分析。

实验一:取水。

不是所有的水都可以用水桶取到的,只有哪些“不流动的水”(以下简称“静水”)可以被水桶取到,而那些”流动的水“(以下简称”流水“)不能被取到。故这里总结猜想出:只有”静水“是”水方块“派生类的对象,具有该类的全部功能,而”流水“只是附在其他派生类,如:岩石,土,砖等的一个函数,其伪代码描述为:如果方块周围有”静水“,且”静水“的高度大于本方块的高度,本方块显示出”流水“状态(后面简称”流水效应“);水桶只能取到“静水”,也就是“水方块”类中由函数:水桶空+右键点击=水桶满+水方块消失。

实验二:超平坦地面上倒水。

在一块超平坦的地面上倒一块”静水“(不要吐槽我用的量词!),发现”流水效应”是有范围的,范围是“静水”周围7格(按路径算,斜线算直角边的格数),并且“流水”的高度是递减的。故上面说到的“流水效应”函数完善如下:增加一个变量:流水强度。且净水的流水强度为8,依次递减1。如果方块周围的方块(取流水强度大的)流水强度大于1,本方块显示出”流水“状态,且流水强度减一。

实验三: 一阶高度倒水。

在“流水效应”范围内存在高度变化(本实验中为一阶),出现了两个现象:一、“流水效应”不再是盲目地向四周扩散,而是仅向梯度下降最快的方向流,如果有多个方向下降率相等,则向这几个方向均有流水。二、流下去后,由于没有进一步的梯度,流水发生扩散,且以流下点为中心,周围7格扩散。至此函数业已很复杂,不给予伪代码描述(Hamilton~help me~),请读者自行体会。

从上面3个实验及总结看出,如果山够陡,即梯度变化发生在“流水效应”范围内,那么发生山洪是必然的。大家可以根据这几个特点,做些小利用~

实验四:验证性试验,多阶梯度倒水

验证了之前的结论。

MC还有更多的好玩的现象,大家继续发现总结。

成绩查询器失效说明

关于昨天下午发生的成绩查询器不稳定以及之后的不能查询成绩的说明。

自2012年初到现在大概有1年的时间了,很多人使用了我发布的成绩查询器,感谢大家的支持。经同学们的反馈,考虑到原1.0版本易用性以及安全性并不是特别理想,在考完后15号-16号期间完成了成绩查询器1.1的重编写与调试。

1.1版本有以下新的功能:

1、15号上午:URP系统以及查询窗口并列显示,且URP页面默认导向本学期成绩页面;用户可以方便的使用上方URP系统的参数来查询详细成绩组成以及暂存成绩的录入状态。

2、15号下午:加入了程序可用性验证,以减少程序潜在的不恰当使用的后果。

3、16号上午:一键查询当前登陆用户本学期所有详细成绩及状态

这里要说明一下,程序使用的是一个接口,对该接口教务系统开发者未正确处理,导致了接口公共空间可用性的存在。

16号增加的一键查询功能,可以使得用户机在短时间内(内网的话1000ms以内)产生对该接口大量的数据请求。程序测试过程中以及后来的小范围分发测试,很可能引起了教务服务器维护人员的注意,并且针对此做出修改(事实上修复这个缺陷应当是一个相当简单的事)。

所以很遗憾,该缺陷被修补后,所有我发布的成绩查询程序都不能够继续正常使用,不论是0.x测试版,1.0版还是1.1测试版。

目前有迹象表明可以使用另一个接口访问成绩数据,但是出于各种考虑不会发布相关查询软件。

再次感谢大家的支持。

坦克世界 XML 文档提取工具

坦克世界 XML 文档提取工具
在坦克世界中,xml文档是经过自定义压缩的,记载了游戏的各种设定、参数,主要集中在 resscriptsitem_defs 中。更多信息请移步http://xvm.garphy.com/?page_id=129

作者 Hamilleton/ZZR

协议:CC-BY-NC-SA

知识共享(CC):署名(BY)-非商业性(NC)-相同方式共享(SA)

本软件应WOT/xml项目组的邀请而编写,目的是为坦克世界的xml整理工作提供方便,但是很多功能也可用于其他通用xml文档。

功能:

解码坦克世界xml文档
通用xml文档导出到Excel
通用xml文档生成设置档并根据设置档导出到Excel

运行需求:
最低
Microsoft .Net Framework 4 Client Profile
Microsoft Office Excel 2003*
推荐
Microsoft .Net Framework 4
Microsoft Office Excel 2010*带*号项目并非强制必需,仅在需要使用Excel导出功能时才有依赖。

软件的详细使用指导请前往 http://wiki.fishinbox.tk/index.php/WOT_XML_Extractor

Microsoft Excel Add-In Updated

Today I got this small add-in updated.
Add-in page at APP Page

This update including several main changes as following:

1, Change UI from Office Ribbon to Windows Form which is more organized.

2, Title insertion adds a new function and now users can get the range by a simple click rather than brain taken inputs.

3, Adds a function that can compare data in two ranges.