宠物游戏系统 java

宠物游戏

一 项目背景

  • 结合大二上学期所学的java基础编程知识,如循环结构、数组、类和对象等,以及java第二部分编程知识,如继承、多态、异常和集合框架等。

  • 根据自身的实际学习情况,从而决定编写宠物游戏系统,一方面是为了检验自己的学习情况,另一方面则是通过编写程序来增强自己对java的理解,培养良好的编程习惯。

二 程序设计

  • 2.1、系统程序设计
    • 2.1.1、工程结构的设计
  • 在编写宠物游戏系统时,最初的想法是建立两个程序包,一个用于存储用户数据和用户相关的操作方法,另一个则是包含所有的游戏数据汇总。但在写完宠物类后,发现用一个程序包来存储游戏数据的话会太过杂乱。于是便创建了5个程序包,将用户类Master、游戏中的商贩类Merchant存储在一个包中,将所有的宠物类存储在一个包,将游戏中的场所类写在一个包中,将游戏场所的接口存在一个包中,游戏测试单独存储在一个包。
  • 使用接口是为了模拟出通向各个游戏场所的道路,同时方便游戏场所的编写。

如下图所示:
宠物游戏系统 java
宠物游戏系统 java
宠物游戏系统 java

  • 2.1.2、宠物数据的保存
  • 由于宠物系统涉及到的宠物比较多,为了更好的管理这些宠物,我的初步设计想是建立一个Pet抽象类,将所有宠物可能存在的属性和需要的方法编写在其中。之后再根据宠物种类的不同建立子类,如Cat类、Dog类等。在子类中编写某种宠物特定的属性和方法。
  • 在父类Pet中,一共声明了7个变量体现宠物的属性,定义了20种方法对声明的变量进行操作。其中对于父类中的所有变量使用了protected修饰,将其保护起来,只能通过公开的方法进行访问。
  • 关于宠物属性的初始化,一些普通的属性,如宠物名字等采用了让用户直接输入的方法。而其他较为特殊的属性则采用了特殊的赋值方法,如宠物性别的初始化,先是考虑到如果让用户输入可能会出现拼写错误的情况,于是将性别的初始化设定为由用户输入性别选项来确定宠物性别。 但也无法避免用户输入错误选项的情况,于是在用户输入非设定的性别选项时默认用户选择了雄性male.同时也存在需要系统随机定义宠物性别的情况,所以通过系统随机生成的数字0、1来确定宠物性别。同时一些属性也是由系统随机生成的数字来定义的,如健康值、亲密度等。
  • 在父类的方法中,有一个特殊的抽象方法,是用于给宠物的战斗力赋值。由于不同种类的宠物有自己特定的属性,同时该属性也是影响其战斗力的因素,所以要求每个子类写出自己的战斗力赋值方法。同样的在显示宠物的所有信息时,也要求显示该宠物的特定属性,所以在子类中对父类的宠物信息展示方法进行了重写。
  • 对于用户而言,因为其可以拥有多个宠物,所以在用户类Master中用链表存储宠物的信息。在调用用户的某一只宠物时,选择通过让用户输入该宠物的名字来与链表中的宠物进行匹配,在查找到该宠物后输出其在链表中的编号。对于游戏中的npc商贩来说,他们也同样拥有多只宠物。于是我在商贩类Merchant以及在冒险岛类中有关商贩的方法定义中使用了大量的对象数组。
  • ## 三 系统功能
  • ## 四 系统创新点
  • ## 五 具体的程序代码

链接: 宠物游戏代码.

  • ## 六 心得体会