从装备合成谈树状结构的应用

源码下载:

链接: https://pan.baidu.com/s/1DucpIik596W1pkY09FjUew 提取码: n8mq

其中有个文件“类的功能介绍.txt”,介绍了每个类的作用,大家参考。

可以看出,这是基于学生案例的一个改进。学生做了多窗口的UI和飞机大战,我加了装备合成。

初学者做到这样,不容易。但学生的很多代码,还可以再改进。

最开始学到树状结构,顺序存放、链式存放是数据结构的技术。

一、应用软件

应用软件、毕业设计,都需要数据库。数据库也可以保存树状结构。网游、王者荣耀,必然是数据单独存放,可能是XML,可能是一张表,json等格式。

比如商品分类,父节点和子节点的商品分类。

id,parentid, type, isleaf

1,0,食品类,0

2,1,饮料, 0

3,2,碳酸饮料,1

4,2,啤酒饮料,1

5,2,奶茶饮料,1

可以认为,在商品分类里,[3][4][5]的id,对应叶子节点。

应用软件、毕业设计,有很多分级的设计,比如:论坛版块、一级论坛,二级论坛,主题、分类、帖子。

比较low的毕设,就是两张表:一级分类表,二级分类表。如果要做三级、四级,怎么办?

二、游戏软件

我们把节点重新排一下,变成游戏软件的装备:

id,parentid, type, isleaf

1,4,初级A1,1

2,4,初级A2,1

3,4,初级A3,1

4,5,中级B1,0

5,0,高级C1,0

然后,改变一下字段,比如,合成条件,一个节点由多个子节点合成,还可以表示某节点的需要数量。

id,parentid, extequip, condition

1,4,初级A1,0

2,4,初级A2,0

3,4,初级A3,0

4,5,中级B1,1,2,3 // 表示所需[1][2][3]各一件

5,0,高级C1,2,2,3,3// 表示所需[2]号装备两件,[3]号装备两件。

网游的数据,也必然是外部数据文件、或者网络后台数据库,而且要经常更新。

三、改进

json火了,以下是一种方案:

{    "id": 4,    "parentid": 5,    "extequip": "高级C1",
    "condition": [        {        "id": 2,            "num": 2        },
                            {            "id": 3,            "num": 2        }    ]
}

四、程序存放

比较简单的做法,直接写出二维数组,直接赋值(参考我的程序)。

如果是外部文件,可以读取到一个二维数组。也可以读取到一个java的树状结构。

class Node

{      List<Node>  children=new ArrayList<Node>();

}

参考设计模式的组合模式。

五、改进

还有一些辅助的功能,比如递归画出连线,递归计算子节点的数据之和,就是装备的总价值。

也可以增加字段,用递归获得一个低级装备,可以合成哪些高级装备。

这还没有加属性,攻击,防御,控制。这样一个编程的技术,对于学生来说,已经很领先。以500个学生算,了解、学习这个技术的人,不足10个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值