请问怎样用JAVA实现技能树

请问怎样用JAVA实现技能树,第1张

写的很乱,勉强能看懂.

用二叉树就能实现.

public class SkillTree {

private class Node{

static final int UNDEF=0

int key

int value

String name

Node left

Node right

Node(int key,int value,String name){

this.key = key

this.value = value

this.name = name

left = null

right = null

}

public String toString(){

return "("+name+","+value+")"

}

}

private Node root

public SkillTree(){

root = null

}

public void insert(int key,int value,String name){

Node newNode = new Node(key,value,name)

if(root == null){

root = newNode

}else{

insertNode(root,newNode)

}

}

private Node getNode(int key) throws Exception{

Node result = root

while(result.key != key){

if(result.value == 0){

return null

}

if(key <result.key){

result = result.left

}else{

result = result.right

}

if(result == null){

throw new Exception("Can't find value by "+key)

}

}

return result

}

public int getValue(int key) throws Exception{

return getNode(key).value

}

private void insertNode(Node subtreeRoot,Node newNode){

Node current = subtreeRoot

while(true){

if(newNode.key<current.key){ //go left

if(current.left == null){

current.left = newNode

return

}else{

current = current.left

}

}else{ //go right

if(current.right == null){

current.right = newNode

return

}else{

current = current.right

}

}

}

}

public void setPoint(String name,int point){

int key = getKey(name)

if(key == -1){

System.out.println("没有这个技能名称:"+name)

return

}else{

try {

Node current = getNode(key)

if(current == null){

System.out.println("你还没有拥有这项技能."+name)

return

}

if(point >=0){

current.value = point

}else{

System.out.println("技能点不能为负.")

return

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace()

}

}

}

public int getKey(String name){

if(name.equals("冰d")){

return 50

}else if(name.equals("冰风暴")){

return 20

}else if(name.equals("冰封装甲")){

return 60

}else if(name.equals("冰尖柱")){

return 10

}else if(name.equals("暴风雪")){

return 40

}else if(name.equals("碎冰甲")){

return 70

}else if(name.equals("冰封球")){

return 30

}else if(name.equals("寒冰装甲")){

return 80

}else{

return -1

}

}

public void view(Node subtreeRoot){

if(subtreeRoot !=null){

System.out.print(subtreeRoot+"[")

view(subtreeRoot.left)

System.out.print(",")

view(subtreeRoot.right)

System.out.print("]")

}else{

System.out.print("N")

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

SkillTree st = new SkillTree()

st.insert(st.getKey("冰d"),0,"冰d")

st.insert(st.getKey("冰风暴"),0,"冰风暴")

st.insert(st.getKey("冰封装甲"),0,"冰封装甲")

st.insert(st.getKey("冰尖柱"),0,"冰尖柱")

st.insert(st.getKey("暴风雪"),0,"暴风雪")

st.insert(st.getKey("碎冰甲"),0,"碎冰甲")

st.insert(st.getKey("冰封球"),0,"冰封球")

st.insert(st.getKey("寒冰装甲"),0,"寒冰装甲")

st.view(st.root)

System.out.println()

st.setPoint("冰风暴",5)

st.view(st.root)

}

}

在某信输入什么代码可以看菜谱

菜谱数据采用XML方式存储,使用时调用;

2:程序主界面采用tabtable界面 通过切换tab来显示各个界面,分为4个界面Suggestion,推荐界面, colloect界面,getall界面,calcute界面;

3:Suggestion界面设置随便看看按钮和搜索按钮,随便看看按钮随机从数据库中抽取5个数据,读取到listview中显示出来;搜索界面采用模糊查询方式,查询数据;

4:collect界面显示收藏的菜谱数据,并且采用SQLite数据库存储模式,存储到数据库中;

5:getall显示全部数据库数据,并且支持记录上次阅读位置,下次进入程序的时候直接继续上次浏览;

6:calcute显示通过身高计算体重的小工具;

7:全部数据采用listview来显示,通过自定义的adapter来适配数据;

8:所有listview都支持点击进去详细菜谱查看;

文章知识点与官方知识档案匹配

小程序技能树首页概览

3984 人正在系统学习中

打开CSDN APP,看更多技术内容

Python-MLOps-Cookbook:这是容器化烧瓶应用程序的一个示例

集装箱烧瓶机学习这是容器化烧瓶应用程序的一个示例回购资产Makefile : requirements.txt : cli.py : app.py : mlib.py :模型处理库htwtmlb.csv1 :用于输入缩放model.joblib : Dockerfile : Baseball_...

热门推荐 小程序 *** 作Mysql数据库

小程序的诞生,是移动应用的革命。下面是腾讯云服务器端配置:·Node.js 8.2.1·MySQL 5.7.18·Nginx 1.10.2新开发环境是 wafer2,这种架构使后台开发更方便。数据库用Mysq...

继续访问

微信小程序实战之菜谱小程序

最近突发奇想,想要自己搞个小程序玩儿玩儿,但是鉴于自己是搞后端服务器出身,对于偏前端的微信小程序开发实在是一知半解,尤其是对于css类样式相关,更是无从下手,于是乎,只能从晚上找了一个demo,对其进行了一番改造,然后进行上线,也算是基本完整的走了一遍小程序开发的简单流程,本篇文章就是对这次实践的简单介绍。 先放个二维码压压惊~ 原文地址:http://www.darylliu.cn/arch...

继续访问

菜鸟的 PHP 学习之路(三):一个简单的连接数据库并查询的小程序(1)

上一篇文章已经写了一个简单的 Hello World 程序了,好吧,其实那不是我的第一个 PHP 程序,我的第一个程序是简单地连接数据库的(我不会介绍 PHP 语法的,至少不会专门去介绍,免得误人子弟,要看语法介绍的自行上 W3CSchool 这个网站),话不多说,直接开始吧! 既然要连接数据库,那么肯定要有数据库和数据库表啦,Appserv 已经集成了 MySQL 这款开源的数据库了,我们可以

继续访问

菜谱小程序_云应用程序食谱

这些年来,模式在软件开发,体系结构和 *** 作中的价值已得到广泛记录。 例如,TOGAF中的 The Open Group的Architecture模式讨论,以及Kyle Brown在运行时模式上下文中的所有级别的Patterns讨论。 在本文中,您将学习一种称为食谱的新型模式。 您可以使用配方来评估候选应用程序以迁移到云或在云中实施。 这些应用程序可以专门在云中或在混合模型中运行,其中某些组件...

继续访问

使用python获取菜谱图文

今天学习了python爬虫,刚好老婆想下载一些菜谱图片,就改了改网上的代码,试着抓了一下,把菜谱的步骤打印出来,图片保存到桌面上。 # -*- conding:utf-8 -*- import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() retu

继续访问

MS3-CookBook:这是一本在线食谱

要运行后端Python文件,请输入python3 app.py ,如果您的Python文件当然名为app.py 应该会出现一个蓝色按钮,以单击: “公开” , 应该出现另一个蓝色按钮,以单击:打开浏览器。 在Gitpod中,默认情况下,您具有...

cookbook:Cookbook是一个社区驱动的食谱数据库,它使用户能够注册,提交食谱,搜索社区食谱以及搜索更大的第三方数据库

描述Cookbook是一个社区驱动的食谱数据库,它使用户能够注册,提交食谱,搜索社区食谱以及搜索更大的第三方数据库。 食谱跳过了不必要的部分,并提供了直接的食谱,包括名称、照片、成分和说明。 没有填充物,不需要...

infinite-cookbook:一个分享食谱的新项目!

无限食谱一个分享食谱的新项目!

微信小程序入门Cookbook-1(不定期更新)

微信小程序开发,微信小程序开发入门,快速开始微信小程序开发,微信小程序入门指引

继续访问

ntu-cookbook:一个开源项目,汇集了各种烹饪食谱,方法和技术

是否在寻找可以存放各种学生食谱的地方? 好吧,你已经找到了! 这是一个开源项目,由我们的成员之一。 该项目的灵感来自项目。 该项目和回购的目的是汇编... 创建一个以您的食谱命名的新分支( git checkout -b [br

cookbook:一个使用Ruby MVC表示食谱的简单应用

cookbook:一个使用Ruby MVC表示食谱的简单应用

grunt_cookbook:这是一本食谱,可用于从 Chef 中安装和运行 grunt 任务

这是一本食谱,可用于安装 grunt 并从 Chef 中运行 grunt 任务。 如果您的主厨节点已经安装了 nodejs 和 npm 包括 grunt_cookbook:install_grunt_cli 配方并在 Gruntfile 和 package.json 文件所在的目录中执行 ...

cookbook:这是一个谷歌浏览器扩展,它试图将美国单位转换为欧洲单位

食谱翻译器 This is still in alpha. At the moment it translates all websites automatically. In future releases I will include a whitelist for websites so we won't break functionality on websites. 这是...

thecookbook:免费、开源的食谱跟踪应用程序

免费的开源食谱跟踪应用程序。 在查看它的实际效果 特征 快速创建自己的食谱 成分和说明的简化格式(降价) 标记食谱以进行快速分类 “叉”一个你想改变的食谱 上传熟食谱的照片 开发商 我总是很高兴收到拉取请求,...

最新发布 wordpress-cookbook:只是另一本给厨师的 wordpress 食谱。 这本食谱支持多个 WordPress 安装

只是另一本 WordPress 食谱。 这本食谱支持多个 WordPress 安装。 要求 食谱 易于 阿帕奇2 php mysql 数据库 平台 Ubuntu 12.04 Ubuntu 14.04(也许) 属性 wordpress::默认 钥匙 类型 描述 默认 [:wordpress][:...

axoniq-cookbook:食谱食谱如何准备Axon应用程序

食谱模板在/recipes是一个名为0_asciidoc_axon_cookbook_template.md的文件,其中包含每个配方的模板。 如果您更改模板中的某些内容,请确保每个配方仍在相应地起作用。命名请命名食谱,包括问题的编号。 因此,例如...

Python cookbook(数据结构与算法)根据字段将记录分组 *** 作示例

主要介绍了Python cookbook(数据结构与算法)根据字段将记录分组 *** 作,结合实例形式分析了itertools.groupby()函数针对字典进行分组 *** 作的相关实现技巧,需要的朋友可以参考下.

python-click-cli-cookbook:一个包含食谱食谱的仓库,用于使用Python构建命令行工具Click

Python单击CLI食谱 一个包含食谱食谱的仓库,用于使用Python构建命令行工具Clic


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7975571.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存