游戏角色管理系统

该项目涉及工厂模式、MVC架构、XML文件处理及反射技术。通过PropertyFactory进行对象创建,GameDaoImp和GameServiceImp处理数据操作,Role、Soldier、Magicer及Team等类定义游戏角色,使用lombok优化代码,JUnit 4进行测试,dom4j解析XML。
摘要由CSDN通过智能技术生成

知识点:工厂模式,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)");
			String key2 = scanner
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值