因为想做一个古堡探险的文字类游戏,于是今天做了一个Creature的基类,和一个Xutaige类和一个Monster类的子类。其中在做战士类的时候需要用weapon来增加战士的伤害值,于是就考虑用HashMap来表示多个武器。选择HashMap的原因是因为一个武器对应一个伤害值(当然现在还做不了带特效的武器,比如带有中毒效果,烧伤效果,冰冻效果,眩晕效果),用HashMap可以很好的完成这一点。下面把weapon的一些代码粘上来。
private HashMap<String,Integer> weapon = new HashMap<String,Integer>();
public void setWeapon(String name,int attackValue) {
weapon.put(name, attackValue);
}
public void getWeapon(String name) {
Attack = Attack + weapon.get(name);
}
public void showWeapon() {
for( String name :weapon.keySet()) {
System.out.println("武器:"+name+" 伤害:"+weapon.get(name));
}
}
public void showDesc() {
System.out.println(name+":"+"Blood:"+getBlood()+" "+"Attack:"+getAttack()
+" Defense:"+getDefense()+" Gold:"+getGold()+" Level:"+getLevel());
showWeapon();
}
可以看到用HashMap做了一个武器,这样的话就可以重复的设置武器的信息,现在做的有一些简陋,只是自己设置武器的属性,而不是在商人的地方购买,在将来可以在用一个列表来储存武器的信息,这样就可以实现购买的功能了。用HashMap做武器用到了以下的函数。
put(object,object),在构造的时候也是使用两个对象,不可以用基本的数据类型。put函数就是把一组信息放在HashMap中。
setKey(),是返回所有的键值,通过foreach循环就可以把String类型给返回出来(这里String是Key)。如果想返回所有的值可以通过values()来实现