邱丑丑
构思如下
前端用户交互系统,包括用户注册和登录,农场概况、土地操作。作物操作等。用户注册时要有相应的用户名、密码、提示问题、答案,登陆后可以修改用户部分相关信息。农场主要信息包括金币数、经验值、好友排行,涉及到相关数据库的存储。对土地的操作主要是耕地、开垦,增加经验同时减少金币。作物的种植、除草、浇水、施肥,对应着相关数据库数据更新。金币的主要来源应该是以卖果实增加的金币。 后端包括后台数据库管理、进程调度。对于金币、经验、土地数、成熟时间等都应有详细记录,主体以时间的记录推进,以金币数和经验值数作为判断标准,进行相应的进程调度。
功能 | 输入 | 处理 | 输出 |
---|---|---|---|
登录;找回忘记密码 | 在登录页面输入的用户名、密码;提示问题答案 | 信息验证,并判断是否弹出农场界面; | 在登录页面提示登录结果;用户基本信息修改页面 |
浏览农场 | 单击农场按钮;对农场的拖动操作 | 弹出农场界面 | 弹出农场界面 |
购买商品 | 点击商店小图片进入商店界面;在商店页面选择的商品种类、输入的数量 | 用户金币值减少,用户包裹商品种类、数量增加 | 显示商品种类名称+商品数量,提示购买结果,显示用户金币减少 |
播种 | 在农场界面对土地进行的操作;种子种类名称+播种的土地编号 | 在界面中替换图片 | 在农场界面的土地上发生变化 |
作物生长 | 作物阶段生长时间+作物生长状态 | 在界面中替换图片;计算作物生长时间、生长状态 | 在农场界面的土地上发生变化 |
拖动、翻地、收获、(不能放虫、放杂草) | 在农场界面对土地进行的操作;操作编号 | 在界面中替换图片 | 在农场界面的土地上发生变化 |
收获果实,放仓库 | 在农场界面对土地进行的操作 | 在界面中替换图片;将商品种类及其数量加在数据库中;用户经验的变化 | 在农场界面的土地上发生变化,仓库中果实的种类及其数量增加 |
卖果实 | 在仓库页面选择的商品种类、输入的数量 | 将商品种类及其数量在数据库中减去;用户金钱的增加 | 仓库中的商品种类及其数量减少 |
开垦土地 | 在农场界面对土地进行的操作 | 在界面中替换图片 | 在农场界面的土地上发生变化 |
查看包裹;包裹内物品的使用 | 单击包裹按钮;点击使用按钮 | 弹出包裹显示种类,数量列表 | 弹出包裹;对包裹内的物品进行操作 |
分页显示好友信息 | 点击好友面板可弹出好友列表界面 | 经验排行,金钱排行,查询好友功能 | 相应显示操作结果 |
用户土地操作:包括翻地、播种、收获等;增加经验值
本功能为登录注册功能,包括登录、注册。当个人忘记密码时,由其通过回答提示问题找回密码。
系统要求登录者提供帐号、密码,并进行身份确认及登录结果页面导向。如果登录者输入的账号和密码与数据库数据不一致,则提示该用户“您输入的账号或密码错误,请从新输入!”;登录成功后弹出用户农场界面。又或者该用户已经不记得密码,登录还设置一个找回密码的功能,用户可以修改自己的密码及部分基本信息,单击找回密码按钮则弹出用户早先在注册信息中设置的问题,如果用户输入的答案与注册信息中设置的答案不一致,则提示用户“您输入的答案错误,请从新输入!”;如果输入的答案正确,则弹出密码从新输入对话框,要求用户重新输入密码,并再次确认以及是否修改其他基本信息,用户提交后,经过验证将数据保存到数据库。
农场界面会显示用户的游戏信息,如昵称、等级、金币等信息。同时农场会显示不同的图片按钮供用户进行操作,如点击商店图片进入商店购买物品、点击留言可以输入留言信息、点击仓库图片进入仓库查看作物等。
用户对自己土地的操作,主要包括拖动、翻地、播种收获、等。不能放虫、种杂草等等。如果进行翻地操作的土地上已经存在作物,这时对土地进行操作为有效操作,。当土地上没有作物时可以进行播种操作,当土地上存在作物时不可以进行播种操作。物已经成熟,可以进行收获、,当土地上的作物没有成熟,则不能进行收获。
游戏中包含商店系统,用户可以从商店中用金币购买物品,也可以把自己仓库(仓库是用来存取用户作物收成的地方)中收获或偷取的果实、蔬菜等物品卖到商店获得金币。用户通过单击商店按钮进入商店界面,在商店中用户可以看到系统所提供的所有商品,其商品信息主要包括:商品名称、购买单价、限制购买等级等等;如果用户单击仓库按钮,则进入仓库界面,在仓库界面中,用户可以看到已经收获的或偷取好友的果实各自的种类、名称、数量、卖出单价及其所有果实的卖出收入。
记录日志也是系统的功能,用户对好友的土地操作会由系统记录下来,并显示到用户的日志信息中。日志记录的主要内容应该包括:用户对土地的操作、用户的买卖行为以及好友对土地的操作等等。主要日志字段包含操作人、操作时间以及操作内容等。
数据字典的主要目的是提供查阅对不了解的条目的解释。在数据字典中记录数据元素的下列信息:一般信息(名字,别名,描述等),定义(数据类型,长度,结构等),使用特点(值的范围,使用频率,使用方式—输入/输出/本地,条件值等),控制信息(来源,用户,使用它的程序,改变权等),分组信息(父结构,从属结构,物理位置—记录、文件和数据库等)。
下面的例子是通过卡片来描述数据字典:
userBasic 用户基本信息表
字段名 | 数据类型 | 是否为空 | 默认值 | 备注 |
---|---|---|---|---|
userID | Int | Not null | 用户编号,主键,标识列,初始值为1,增量为1 | |
userName | Nvarchar(30) | Not null | 用户昵称 | |
Sex | Bit | Not null | 0 | 用户性别 |
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 | 好友编号 |