不知道有没人玩过魔兽没?呵呵现在我想用java模拟魔兽里的一个人物角色在魔兽里,人物分联盟、部落2个阵营,阵营之间是互相对立的
共有9个职业:战士,盗贼,法师,牧师,术士,猎人,萨满,圣骑士,德鲁伊;
共有8个种族:人类,精灵,矮人,侏儒,兽人,牛头,巨魔,亡灵;
其中人类,精灵,矮人,侏儒属于联盟阵营,兽人,牛头,巨魔,亡灵属于部落阵营
现在设想每个种族都可以选择不同的职业创建游戏角色谁能帮助我设计一个类体系表示以上的关系啊,谢谢了

解决方案 »

  1.   

    首先种族,职业,阵营都是基本不变的可以设置为常量,或者说c#/c中的枚举类型.
    而一个角色只能选择职业中的一种,阵营中的一种,种族中的一种,故只需要在角色类中添加三个属性即可.
    再添加一个构造方法,使得每次创建角色时都能指定角色所属的阵营职业种族,同时这三个属性为只度属性.
    (仅供参考)
    代码如下:package com.moshou;public interface 阵营 {
    //人物分联盟、部落2个阵营
    String LIANMENG="联盟";
    String BULUO="部落";
    }package com.moshou;public interface 职业 {
    //战士,盗贼,法师,牧师,术士,猎人,萨满,圣骑士,德鲁伊
    String ZHANSHI = "战士";
    String DAOZEI="盗贼";
    String FASHI="法师";
    String MUSHI="牧师";
    String SHUSHI="术士";
    String LIEREN="猎人";
    String SAMAN="萨满";
    String SHENGQISHI="圣骑士";
    String DELUYI="德鲁伊";
    }package com.moshou;public interface 种族 {
    //人类,精灵,矮人,侏儒,兽人,牛头,巨魔,亡灵
    String RENLEI="人类";
    String JINGLING="精灵";
    String AIREN="矮人";
    String ZHURU="侏儒";
    String SHOUREN="兽人";
    String NIUTOU="牛头";
    String JUMO="巨魔";
    String WANGLING="亡灵";
    }
    package com.moshou;public class 角色 {
    private String 阵营; private String 职业; private String 种族; public String get阵营() {
    return 阵营;
    } public String get职业() {
    return 职业;
    } public String get种族() {
    return 种族;
    } public 角色(String 阵营, String 职业, String 种族) {
    super();
    this.阵营 = 阵营;
    this.职业 = 职业;
    this.种族 = 种族;
    } @Override
    public String toString() {
    return "该角色的详细信息如下:\n" + "阵营:" + this.阵营 + "\n职业:"+this.职业+"\n种族:" + this.种族;
    }}
    package com.moshou;public class TestMoshou {
    public static void main(String[] args) {
    角色 juese = new 角色(阵营.BULUO, 职业.DAOZEI, 种族.JINGLING);
    System.out.println(juese.toString());
    }
    }