基于Java的开心农场

邱丑丑

发布日期: 2019-06-03 18:15:43 浏览量: 479
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

1 概述

构思如下

前端用户交互系统,包括用户注册和登录,农场概况、土地操作。作物操作等。用户注册时要有相应的用户名、密码、提示问题、答案,登陆后可以修改用户部分相关信息。农场主要信息包括金币数、经验值、好友排行,涉及到相关数据库的存储。对土地的操作主要是耕地、开垦,增加经验同时减少金币。作物的种植、除草、浇水、施肥,对应着相关数据库数据更新。金币的主要来源应该是以卖果实增加的金币。 后端包括后台数据库管理、进程调度。对于金币、经验、土地数、成熟时间等都应有详细记录,主体以时间的记录推进,以金币数和经验值数作为判断标准,进行相应的进程调度。

1.1 需求规定

1.1.1 对功能的规定

功能 输入 处理 输出
登录;找回忘记密码 在登录页面输入的用户名、密码;提示问题答案 信息验证,并判断是否弹出农场界面; 在登录页面提示登录结果;用户基本信息修改页面
浏览农场 单击农场按钮;对农场的拖动操作 弹出农场界面 弹出农场界面
购买商品 点击商店小图片进入商店界面;在商店页面选择的商品种类、输入的数量 用户金币值减少,用户包裹商品种类、数量增加 显示商品种类名称+商品数量,提示购买结果,显示用户金币减少
播种 在农场界面对土地进行的操作;种子种类名称+播种的土地编号 在界面中替换图片 在农场界面的土地上发生变化
作物生长 作物阶段生长时间+作物生长状态 在界面中替换图片;计算作物生长时间、生长状态 在农场界面的土地上发生变化
拖动、翻地、收获、(不能放虫、放杂草) 在农场界面对土地进行的操作;操作编号 在界面中替换图片 在农场界面的土地上发生变化
收获果实,放仓库 在农场界面对土地进行的操作 在界面中替换图片;将商品种类及其数量加在数据库中;用户经验的变化 在农场界面的土地上发生变化,仓库中果实的种类及其数量增加
卖果实 在仓库页面选择的商品种类、输入的数量 将商品种类及其数量在数据库中减去;用户金钱的增加 仓库中的商品种类及其数量减少
开垦土地 在农场界面对土地进行的操作 在界面中替换图片 在农场界面的土地上发生变化
查看包裹;包裹内物品的使用 单击包裹按钮;点击使用按钮 弹出包裹显示种类,数量列表 弹出包裹;对包裹内的物品进行操作
分页显示好友信息 点击好友面板可弹出好友列表界面 经验排行,金钱排行,查询好友功能 相应显示操作结果

1.1.2 系统功能层次模块图

1.1.2.1 子模块

用户土地操作:包括翻地、播种、收获等;增加经验值

2 系统功能设计

2.1 登录注册功能

本功能为登录注册功能,包括登录、注册。当个人忘记密码时,由其通过回答提示问题找回密码。

2.1.1 登录子功能

系统要求登录者提供帐号、密码,并进行身份确认及登录结果页面导向。如果登录者输入的账号和密码与数据库数据不一致,则提示该用户“您输入的账号或密码错误,请从新输入!”;登录成功后弹出用户农场界面。又或者该用户已经不记得密码,登录还设置一个找回密码的功能,用户可以修改自己的密码及部分基本信息,单击找回密码按钮则弹出用户早先在注册信息中设置的问题,如果用户输入的答案与注册信息中设置的答案不一致,则提示用户“您输入的答案错误,请从新输入!”;如果输入的答案正确,则弹出密码从新输入对话框,要求用户重新输入密码,并再次确认以及是否修改其他基本信息,用户提交后,经过验证将数据保存到数据库。

2.2 用户功能

农场界面会显示用户的游戏信息,如昵称、等级、金币等信息。同时农场会显示不同的图片按钮供用户进行操作,如点击商店图片进入商店购买物品、点击留言可以输入留言信息、点击仓库图片进入仓库查看作物等。

2.2.1 土地操作子功能

用户对自己土地的操作,主要包括拖动、翻地、播种收获、等。不能放虫、种杂草等等。如果进行翻地操作的土地上已经存在作物,这时对土地进行操作为有效操作,。当土地上没有作物时可以进行播种操作,当土地上存在作物时不可以进行播种操作。物已经成熟,可以进行收获、,当土地上的作物没有成熟,则不能进行收获。

2.2.2 买卖商品子功能

游戏中包含商店系统,用户可以从商店中用金币购买物品,也可以把自己仓库(仓库是用来存取用户作物收成的地方)中收获或偷取的果实、蔬菜等物品卖到商店获得金币。用户通过单击商店按钮进入商店界面,在商店中用户可以看到系统所提供的所有商品,其商品信息主要包括:商品名称、购买单价、限制购买等级等等;如果用户单击仓库按钮,则进入仓库界面,在仓库界面中,用户可以看到已经收获的或偷取好友的果实各自的种类、名称、数量、卖出单价及其所有果实的卖出收入。

记录日志也是系统的功能,用户对好友的土地操作会由系统记录下来,并显示到用户的日志信息中。日志记录的主要内容应该包括:用户对土地的操作、用户的买卖行为以及好友对土地的操作等等。主要日志字段包含操作人、操作时间以及操作内容等。

3 数据字典设计

数据字典的主要目的是提供查阅对不了解的条目的解释。在数据字典中记录数据元素的下列信息:一般信息(名字,别名,描述等),定义(数据类型,长度,结构等),使用特点(值的范围,使用频率,使用方式—输入/输出/本地,条件值等),控制信息(来源,用户,使用它的程序,改变权等),分组信息(父结构,从属结构,物理位置—记录、文件和数据库等)。

下面的例子是通过卡片来描述数据字典:

4 数据库设计

4.1 表设计

4.1.1 TableName(表名的解释)

userBasic 用户基本信息表

字段名 数据类型 是否为空 默认值 备注
userID Int Not null 用户编号,主键,标识列,初始值为1,增量为1
userName Nvarchar(30) Not null 用户昵称
Sex Bit Not null 0 用户性别
Email Nvarchar(50) Null 用户Email地址
enrollTime Datetime Not null 注册日期
userIcoSrc Nvarchar(50) Not null 用户头像地址
userCode Nvarchar(12) Not null 用户游戏帐号
Pwd Nvarchar(50) Not null 用户密码

userInfo 用户游戏信息表

字段名 数据类型 是否为空 默认值 备注
infoID Int Not null 信息编号,主键,标识列,初始值为1,增量为1
userID Int Not null 用户编号,外键,与userBasic表中userID字段关联
Experience Int Not null 0 用户游戏经验值
Coin Int Not null 1000 用户游戏金币值
Grade Int Not null 0 用户游戏级别
lastTime Datetime Not null 用户最近一次登录游戏的时间

cropBasic 作物基本信息表

字段名 数据类型 是否为空 默认值 备注
cropID Int Not null 作物编号,主键,标识列,初始值为1,增量为1
cropName Nvarchar(50) Not null 作物名称
Grade Int Not null 0 用户种植该作物所需达到的游戏级别
seedPrice Int Not null 0 用户购买该作物种子的单价
cropPrice Int Not null 0 作物果实卖出时的单价
getExp Int Not null 0 用户收获果实所得的单位经验值
hvtMax Int Not null 作物可收获果实的最大值
hvtMin Int Not null 作物可收获果实的最小值
hvtTime Int Not null 作物从种子阶段成长到结果阶段所需的时间值
cropIcoSrc Nvarchar(50) Not null 作物图标地址
Instroduce Nvarchar(50) Not null 作物简单介绍

cropGrowthInfo 作物生长信息表

字段名 数据类型 是否为空 默认值 备注
infoID Int Not null 信息编号,主键,标识列,初始值为1,增量为1
cropID Int Not null 作物编号,外键,与cropBasic表中cropID字段关联
germinateTime Int Not null 作物发芽阶段所需的时间值
litterTime Int Not null 作物小叶阶段所需的时间值
bigTime Int Not null 作物大叶阶段所需的时间值
flowerTime Int Not null 作物开花阶段所需的时间值
frutTime Int Not null 作物结果阶段所需的时间值
germinateIcoSrc Nvarchar(50) Not null 作物发芽阶段的图片地址
litterIcoSrc Nvarchar(50) Not null 作物小叶阶段的图片地址
bigIcoSrc Nvarchar(50) Not null 作物大叶阶段的图片地址
flowerIcoSrc Nvarchar(50) Not null 作物开花阶段的图片地址
frutIcoSrc Nvarchar(50) Not null 作物结果阶段的图片地址

harvestList 成果列表

字段名 数据类型 是否为空 默认值 备注
listID Int Not null 列表编号,主键,标识列,初始值为1,增量为1
userID Int Not null 用户编号,外键,与userBasic表中userID字段关联
cropID Int Not null 作物编号,外键,与cropBasic表中cropID字段关联
hvtTotal Int Not null 0 用户在游戏中摘取果实的累计值

cropStoreInfo 果实存储列表

字段名 数据类型 是否为空 默认值 备注
storied Int Not null 存储编号,主键,标识列,初始值为1,增量为1
userID Int Not null 用户编号,外键,与userBasic表中userID字段关联
cropID Int Not null 作物编号,外键,与cropBasic表中cropID字段关联
storeNumber Int Not null 0 用户仓库中存储的果实数量

seedStoreInfo 种子存储列表

字段名 数据类型 是否为空 默认值 备注
storied Int Not null 存储编号,主键,标识列,初始值为1,增量为1
userID Int Not null 用户编号,外键,与userBasic表中userID字段关联
cropID Int Not null 作物编号,外键,与cropBasic表中cropID字段关联
storeNumber Int Not null 0 用户包裹中存储的果实种子数量

plantInfo 种植列表

字段名 数据类型 是否为空 默认值 备注
plantID Int Not null 种植编号,主键,标识列,初始值为1,增量为1
userID Int Not null 用户编号,外键,与userBasic表中userID字段关联
soilID Int Not null 游戏中被开垦的土地编号
isReclaim Bit Not null 0 记录游戏中该块土地是否已被开垦;0代表未开垦,1代表已开垦
cropID Int Not null 作物编号,外键,与cropBasic表中cropID字段关联
startTime Datatime Not null 作物种植开始时间
State Int Not null 0 作物生长期间的状态值,包括无、正常、杂草、有虫、干旱、积水六种状态分别用0、1、2、3、4、5代表
Degree Int Not null 0 作物处于上述状态中的程度值;程度分为五级(x=2、4、6、8、10)

friendsList 好友列表

字段名 数据类型 是否为空 默认值 备注
listID Int Not null 列表编号,主键,标识列,初始值为1,增量为1
userID Int Not null 用户编号,外键,与userBasic表中userID字段关联
friendID Int Not null 好友编号

4.2 表之间的关联设计

上传的附件 cloud_download java做的开心农场.7z ( 4.00mb, 1次下载 )
error_outline 下载需要10点积分

发送私信

精品资源尽在此

45
文章数
0
评论数
最近文章
eject