题目是一个玩家打怪,打10次以后如果怪物没死,则怪物分裂为两个
我是菜鸟  尝试写了一下  大家帮我看看
先是两个自定义类 Monster和Player
package start;public class Monster
{
int hp;
int atk;
int def;

public Monster(int hp,int atk,int def)
{
this.hp=hp;
this.atk=atk;
this.def=def;
}
public void athp(Player pl)
{
pl.hp=pl.hp-(atk-pl.def);

}然后是Player
package start;public class Player 
{
int hp;
int atk;
int def;

public Player(int hp,int atk,int def)
{
this.hp=hp;
this.atk=atk;
this.def=def;
}
public void athp(Monster mo)
{
mo.hp=mo.hp-(atk-mo.def);
}
}接着是主程序  我加了很详细的注释,不管是不是准确吧  如下//本程序运行结果:
//如果怪物没有分裂,有两种结果:1.玩家胜利,怪物死亡;2.玩家失败
//如果怪物产生分裂,有五种结果:1.玩家胜利;2.玩家死亡,怪物1存活,怪物2存活;3.玩家死亡,怪物1死亡,怪物2存活
//4.玩家存活,怪物1存活,怪物2存活,且两怪物逃跑;5.玩家存活,怪物1死亡,怪物2存活且逃跑
package start;public class Survivalnew
{
public static void main(String[] args)
{
Player pp=new Player(1040,120,70); //实例化
Monster mm=new Monster(1000,120,50); //
Monster mm1=new Monster(mm.hp,mm.atk,mm.def); //
int i;
for (i=1;i<=10;i++) //循环10次
{
pp.athp(mm); //玩家先进行攻击
mm.athp(pp); //怪物进行攻击
if (mm.hp<=0 | pp.hp<=0)break; //如果怪物hp,玩家hp任一个hp<=0则跳出循环
System.out.println("预算-玩家剩余"+pp.hp+"hp,怪物剩余"+mm.hp+"hp"); //输出每回合玩家和怪物剩余hp
}
if (mm.hp<=0) //如果怪物hp<=0则玩家胜利
{
System.out.println("第"+i+"回合怪物死了,玩家胜利,玩家还剩余"+(pp.hp+(mm.atk-pp.def))+"hp");
}
else if (pp.hp<=0) //如果玩家hp<=0则玩家失败
{
System.out.println("第"+i+"回合玩家死了,怪物还剩余"+mm.hp+"hp");
}
if (i>10&&pp.hp>0&&mm.hp>0) //如果10次循环之后玩家和怪物hp均大于0
{
mm1.hp=mm.hp;//引入怪物2,并使得怪物2与此前的怪物hp相等
System.out.println("怪物被攻击10次后分裂为两个,同为"+mm.hp+"hp");//怪物分裂说明
for (i=1;i<=100;i++)
{
if (mm.hp<=mm1.hp)//判断怪物1和怪物2的hp,玩家优先攻击hp低的怪物,本程序先攻击怪物1
{
if (mm.hp>0)//如果怪物1 hp>0,则继续执行
{pp.athp(mm);}
else //否则执行下面的语句,即玩家转向攻击怪物2
{pp.athp(mm1);}
}
if (mm.hp>0) //判断怪物1 hp,如果大于0,则继续执行,即执行怪物1攻击玩家
{
mm.athp(pp);
}
if (mm1.hp>0) //判断怪物2 hp,如果大于0,则继续执行,即执行怪物2攻击玩家
{
mm1.athp(pp);
}
if (pp.hp<=0) //判断玩家hp,如果hp<=0,则跳出循环,即执行玩家失败的语句
{
break;
}
else //如果玩家hp大于0,则继续执行下面语句
{
if (mm.hp>0&&mm1.hp>0) //如果怪物1和怪物2 hp均大于0,则执行
{
System.out.println("预算2-第"+(i+10)+"回合,玩家剩余"+pp.hp+"hp,怪物1剩余"+mm.hp+"hp,怪物2剩余"+mm1.hp+"hp");
}
else if (mm.hp<=0&&mm1.hp<=0) //如果怪物1和怪物2 hp均小于0,则执行,即执行玩家胜利语句
{
System.out.println("预算2-第"+(i+10)+"回合,玩家胜利了,玩家还剩余"+pp.hp+"hp,预算2结束");
break; //执行后跳出循环
}
else if (mm.hp<=0) //如果其中hp最小的怪物的hp小于0而另一个大于0,则执行
{
System.out.println("预算2-第"+(i+10)+"回合,玩家剩余"+pp.hp+"hp,怪物1死了,怪物2剩余"+mm1.hp+"hp");
}
}
}
if (mm.hp>0&&pp.hp<=0) //如果hp最小的怪物的hp大于0且玩家hp<=0
{
System.out.println("预算2-第"+(i+10)+"回合,玩家死了,怪物1还剩余"+mm.hp+"hp,怪物2剩余"+mm1.hp+"hp,预算2结束");
}
else if (mm.hp<=0&&pp.hp<=0) //如果hp最小的怪物的hp<=0且玩家hp<=0
{
System.out.println("预算2-第"+(i+10)+"回合,玩家死了,怪物1死了,怪物2剩余"+mm1.hp+"hp,预算2结束");
}
}
if (pp.hp>0&&mm1.hp>0) //循环110回合后如果玩家hp大于0,hp最大的怪物的hp大于0,则判定怪物逃跑
{
if (mm.hp>0) //如果hp最小的怪物的hp大于0
{System.out.println("第"+(i+10)+"回合,两个分裂后的怪物逃跑了,玩家还剩余"+pp.hp+"hp,怪物1还剩余"+mm.hp+"hp,怪物2剩余"+mm1.hp+"hp");}
else //如果hp最小的怪物的hp小于0
{System.out.println("第"+(i+10)+"回合,两个分裂后的怪物逃跑了,玩家还剩余"+pp.hp+"hp,怪物1死掉了,怪物2剩余"+mm1.hp+"hp");}
}
}
}大家帮我看看  多谢