首先职业有:法师 ,战士
法师:
攻击伤害值:法师等级 * 5;(法师等级为1 - 10)
可通过练习增加法师等级
战士:
攻击伤害值:基础伤害值加武器加成,如果遇到本名武器,伤害值加1000(武器名字和自己名字相同)
可通过练习增加基础伤害
附:组队成员不能超过6人
public class TestGame {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("欢迎进入游戏!!!");
System.out.println("请选择你的职业:1.法师 2.战士");
int i = input.nextInt();
switch(i){
case 1:
NamedRole na = magicers();
Magicer magicer2 = (Magicer)na;
System.out.println("创建成功,您的名字为:" + magicer2.name);
System.out.println("您的当前等级为:" + magicer2.getLevel());
System.out.println("加入组队!");
Team.addMember(magicer2);
break;
case 2:
NamedRole na2 = soldiers();
Soldier soldier2 = (Soldier)na2;
System.out.println("创建成功,您的名字为:" + soldier2.name);
System.out.println("您的当前伤害值为:" + soldier2.getDamage());
System.out.println("加入组队!");
Team.addMember(soldier2);
break;
default:
System.out.println("咋回事,还想玩啥!!!");
return;
}
Magicer magi1 = new Magicer();
magi1.name = "渣男公民";
magi1.setLevel(6);
magi1.stick = new BlackStic();
magi1.stick.fire();
magi1.practise();
Team.addMember(magi1);
Magicer magi2 = new Magicer();
magi2.name = "咕噜民";
magi2.setLevel(7);
magi2.stick = new BlackStic();
magi2.stick.fire();
magi2.practise();
Team.addMember(magi2);
Soldier sold1 = new Soldier();
sold1.name = "海王公民";
sold1.setDamage(10);
sold1.weaon = new Bolo();
sold1.weaon.setSoldier(sold1);
sold1.weaon.fire();
sold1.practise();
Team.addMember(sold1);
Soldier sold2 = new Soldier();
sold2.name = "小钢丝球";
sold2.setDamage(11);
sold2.weaon = new Bolo();
sold2.weaon.setSoldier(sold2);
sold2.weaon.fire();
sold2.practise();
Team.addMember(sold2);
System.out.println("加入成功:您的队友有:");
System.out.println(magi1.name + "\t" + "等级 : " + magi1.getLevel() );
System.out.println(magi2.name + "\t" + "等级 : " + magi2.getLevel() );
System.out.println(sold1.name + "\t" + "伤害 : " + sold1.getDamage() );
System.out.println(sold2.name + "\t" + "伤害 : " + sold2.getDamage() );
System.out.println("是否进行团战:1.进行 2.不进行");
int j = input.nextInt();
switch(j){
case 1 :
int nums = Team.attackSum();
System.out.println("团队输出为:" + nums);
System.out.println("团战失败,你太菜了");
break;
case 2 :
System.out.println("菜到不敢玩,垃圾");
return;
}
}
public static NamedRole magicers(){
Magicer magicer = new Magicer();
System.out.println("请输入您的游戏名称:");
magicer.name = input.next();
magicer.setLevel(5);
magicer.stick = new BlackStic();
magicer.stick.fire();
magicer.practise();
return magicer;
}
public static NamedRole soldiers(){
Soldier soldier = new Soldier();
System.out.println("请输入您的游戏名称:");
soldier.name = input.next();
soldier.setDamage(10);
soldier.weaon = new Bolo();
soldier.weaon.setSoldier(soldier);
soldier.weaon.fire();
soldier.practise();
return soldier;
/**
* 量身定制武器加攻击值1000
* 条件: 姓名和武器姓名要相同
* 否则伤害为50;
*/
/*Soldier sold2 = new Soldier();
sold2.name = "小钢丝球";
sold2.setDamage(11);
sold2.weaon = new Pike();
Pike p = (Pike)sold2.weaon;
p.name = "小钢丝球";
p.setSoldier(sold2);
p.fire();
sold2.weaon = p;
System.out.println(sold2.attack());
*/
}
}
class Month{//月份
static int month = 10;
}
class Team {//队伍
static NamedRole[] teams = new NamedRole[6];
static int nums = 0;
public static void addMember(NamedRole r) {
teams[nums] = r;
nums++;
}
public static int attackSum() {
int add = 0;
for (int i = 0; i < nums; i++) {
add += teams[i].attack();
}
return add;
}
}
class Magicer extends NamedRole {//法师-----------------------------------
private static int level;
MagicStick stick;//权杖
public int getLevel() {
return level;
}
public void setLevel(int level) {
if (level >= 1 && level <= 10) {
this.level = level;
}
}
@Override
public int attack() {
return this.level * 5;
}
@Override
public void practise() {
if(stick == null){
this.level++;
}
else if(stick != null){
this.level = level + 1 + stick.fire();
}
}
}
class Green implements MagicStick{//法杖
@Override
public int fire() {
if(Month.month >= 6 && Month.month <=8){
return 2;
}
return 1;
}
}
class BlackStic implements MagicStick{
@Override
public int fire() {
if(Month.month % 2 != 0){
return 1;
}
return 2;
}
}
class Soldier extends NamedRole {//战士------------------------------------------------
private int damage;//战士的伤害值
Weapon weaon;//武器
public int getDamage() {
return damage;
}
public void setDamage(int damage) {
this.damage = damage;
}
@Override
public int attack() {
return damage + weaon.fire();
}
@Override
public void practise() {//每训练一次加10伤害值
damage += 10;
}
}
class Bolo implements Weapon{//武器-----------------------------
Soldier n;
@Override
public void setSoldier(Soldier s) {
n = s;
}
@Override
public int fire() {
if( n.age >= 18){
return 100;
}
return 50;
}
}
class Pike implements Weapon{//武器------------------------------------
String name;//武器的名字
Soldier nn;
@Override
public void setSoldier(Soldier s) {
nn = s;
}
@Override
public int fire() {
if(this.name.equals(nn.name)){
return 1000;
}
// TODO Auto-generated method stub
return 25;
}
}
abstract class NamedRole implements Roles {//角色父类-------------------------------------
String name;
int age;
abstract public int attack();
abstract public void practise();
}
public interface Roles{
int attack();//攻击 ,会造成伤害,并返回伤害值
void practise();//练习 ,会增加伤害
}
public interface MagicStick {
int fire();//法杖的伤害
}
public interface Weapon {
void setSoldier(Soldier s);
int fire();
}