知识点:工厂模式,MVC模式,xml文件解析存取,反射
jar包:lombok,JUnit 4,dom4j
项目结构图
Action`
package cn.kgc.tangcco.chengxiangjian.action;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import javax.sound.midi.VoiceStatus;
import org.junit.Test;
import org.omg.CosNaming.NamingContextExtPackage.AddressHelper;
import cn.kgc.tangcco.chengxiangjian.common.Constant;
import cn.kgc.tangcco.chengxiangjian.common.PropertyFactory;
import cn.kgc.tangcco.chengxiangjian.entity.Magicer;
import cn.kgc.tangcco.chengxiangjian.entity.Role;
import cn.kgc.tangcco.chengxiangjian.entity.Soldier;
import cn.kgc.tangcco.chengxiangjian.entity.Team;
import cn.kgc.tangcco.chengxiangjian.service.GameService;
public class Action {
Scanner scanner = new Scanner(System.in);
//工厂模式创建GameServiceImp对象
GameService service = PropertyFactory.getInstence(Constant.SER);
@Test
//显示菜单
public void menu() {
System.out.println("****游戏管理系统****");
System.out.println("1.添加角色");
System.out.println("2.查询角色");
System.out.println("3.删除角色");
System.out.println("4.修改角色");
System.out.println("5.组队");
System.out.println("6.查询队伍");
System.out.println("0.退出");
System.out.println("请选择功能号:");
int key = scanner.nextInt();
switch (key) {
case 1:
add();
break;
case 2:
showAll();
break;
case 3:
del();
break;
case 4:
modify();
break;
case 5:
zuDui();
break;
case 6:
queryTeam();
break;
case 0:
exit();
return;
default:
System.out.println("输入错误,请重新输入!");
return;
}
menu();
}
//添加角色
public void add() {
System.out.println("请选择要添加分类型:1.魔法师,2.战士");
int key = scanner.nextInt();
System.out.println("请输入角色名称:");
String name = scanner.next();
switch (key) {
case 1:
System.out.println("请输入魔法等级(1-10:)");
Integer magicLevel = scanner.nextInt();
Role role = new Magicer(magicLevel, name);
System.out.println(service.add(role));
break;
case 2:
System.out.println("请输入体魄");
Integer physique = scanner.nextInt();
Role role2 = new Soldier(physique, name);
System.out.println(service.add(role2));
break;
default:
System.out.println("输入错误!(请输入1~2)");
break;
}
}
//查询角色
public void showAll() {
List<Role> list = service.showAll();
if (list.isEmpty()) {
System.out.println("角色尚未添加!");
} else {
int i = 1;
for (Role role : list) {
System.out.println(i + "." + role);
i++;
}
}
}
//删除角色
public void del() {
System.out.println("请选择要删除的角色名称:");
String name = scanner.next();
System.out.println(service.del(name));
}
//修改角色
public void modify() {
System.out.println("请输入要修改的角色名称:");
String name = scanner.next();
System.out.println("是否修改名称 :(y/n)");
String key = scanner.next();
String newName = null;
if (key.equals("y")) {
System.out.println("请输入一个新的姓名:");
newName = scanner.next();
} else {
newName = name;
}
if (service.pdlx(name)) {
System.out.println("是否修改魔法等级 :(y/n)");
String key2 = scanner.next();
Integer newMagicLevel = 0;
if (key2.equals("y")) {
System.out.println("请输入魔法等级(1-10:)");
newMagicLevel = scanner.nextInt();
} else {
newMagicLevel = Magicer.getMagicLevel();
}
System.out.println(service.mModify(name, newName, newMagicLevel));
} else {
System.out.println("是否修改体魄 :(y/n)");