傻子打架!

来源:互联网 发布:java进阶路线 知乎 编辑:程序博客网 时间:2024/04/24 15:10
package equipment;


public class Equipment {

private String name;

private double addAttack;

private double addDefence;

private double addBlood;

private double Crit;

private double drinkBloodNum;


public Equipment(String name, double addAttack, double addDefence,
double addBlood, double crit, double drinkBloodNum) {
super();
setName(name);
setAddAttack(addAttack);
setAddDefence(addDefence);
setAddBlood(addBlood);
setCrit(crit);
setDrinkBloodNum(drinkBloodNum);
}


public String getName() {
return name;
}


private void setName(String name) {
this.name = name;
}


public double getAddAttack() {
return addAttack;
}


private void setAddAttack(double addAttack) {
if(addAttack >= 0){
this.addAttack = addAttack;
}
else{
this.addAttack = 0;
}
}


public double getAddDefence() {
return addDefence;
}


private void setAddDefence(double addDefence) {
if(addDefence >= 0){
this.addDefence = addDefence;
}
else{
this.addDefence = 0;
}
}


public double getAddBlood() {
return addBlood;
}


private void setAddBlood(double addBlood) {
if(addBlood >= 0){
this.addBlood = addBlood;
}
else{
this.addBlood = 0;
}
}


public double getCrit() {
return Crit;
}


private void setCrit(double crit) {
if(crit >= 0 && crit <= 1){
this.Crit = crit;
}
else{
this.Crit = 0;
}
}


public double getDrinkBloodNum() {
return drinkBloodNum;
}


private void setDrinkBloodNum(double drinkBloodNum) {
if(drinkBloodNum >= 0){
this.drinkBloodNum = drinkBloodNum;
}
else{
this.drinkBloodNum = 0;
}
}




}


----------------------------------------------------------------------------------------------------------------------


package hero;


import equipment.Equipment;


public class Hero {

private String name;

private double attack;

private double defence;

private double maxBlood;

private double atTimeBlood;

private double Crit;

private double drinkBloodNum;

private Equipment equipment;


public Hero(String name, double attack, double defence, double maxBlood,
double atTimeBlood, double crit, double drinkBloodNum,
Equipment equipment) {
super();
setName(name);
setAttack(attack);
setDefence(defence);
setMaxBlood(maxBlood);
setAtTimeBlood(atTimeBlood);
setCrit(crit);
setDrinkBloodNum(drinkBloodNum);
setEquipment(equipment);
}


public String getName() {
return name;
}


private void setName(String name) {
this.name = name;
}


public double getAttack() {
return attack;
}


public void setAttack(double attack) {
if(attack >= 0){
this.attack = attack;
}
else{
this.attack = 0;
}
}


public double getDefence() {
return defence;
}


public void setDefence(double defence) {
if(defence >= 0){
this.defence = defence;
}
else{
this.defence = 0;
}
}


private double getMaxBlood() {
return maxBlood;
}


private void setMaxBlood(double maxBlood) {
if(maxBlood > 0){
this.maxBlood = maxBlood;
}
else{
this.maxBlood = 10;
}
}


public double getAtTimeBlood() {
return atTimeBlood;
}


public void setAtTimeBlood(double atTimeBlood) {
if(atTimeBlood > 0 && atTimeBlood < this.maxBlood){
this.atTimeBlood = atTimeBlood;
}
else if(atTimeBlood <= 0){
this.atTimeBlood = 0;
}
else{
this.atTimeBlood = this.maxBlood;
}
}


private double getCrit() {
return Crit;
}


private void setCrit(double crit) {
if(crit >= 0 && crit <= 1){
this.Crit = crit;
}
else{
this.Crit = 0;
}

}


private double getDrinkBloodNum() {
return drinkBloodNum;
}


private void setDrinkBloodNum(double drinkBloodNum) {
if(drinkBloodNum >= 0){
this.drinkBloodNum = drinkBloodNum;
}
else{
this.drinkBloodNum = 0;
}
}


private Equipment getEquipment() {
return equipment;
}


public void setEquipment(Equipment equipment) {
if(equipment!=null){
removeEquipment();
this.equipment = equipment;
setAttack(attack + this.equipment.getAddAttack());
setDefence(defence + this.equipment.getAddDefence());
setMaxBlood(maxBlood + this.equipment.getAddBlood());
setCrit(Crit + this.equipment.getCrit());
setDrinkBloodNum(drinkBloodNum + this.equipment.getDrinkBloodNum());
}
}

private void removeEquipment(){

if(this.equipment == null){
}
else{
setAttack(attack - this.equipment.getAddAttack());
setDefence(defence - this.equipment.getAddDefence());
setMaxBlood(maxBlood - this.equipment.getAddBlood());
if(atTimeBlood <= maxBlood - this.equipment.getAddBlood()){
setAtTimeBlood(atTimeBlood);
}
else{
setAtTimeBlood(maxBlood - this.equipment.getAddBlood());
}
setCrit(Crit - this.equipment.getCrit());
setDrinkBloodNum(drinkBloodNum - this.equipment.getDrinkBloodNum());
this.equipment = null;
}

}

public void hit(Hero hero){
double damage = this.attack - hero.getDefence();
if(damage < 0){
damage = 1;
}
if(isCrit()){
damage *= 2;
}
if(hero.getAtTimeBlood() - damage >= 0){
hero.setAtTimeBlood(hero.getAtTimeBlood() - damage);
}
else{
hero.setAtTimeBlood(0);
}
if(this.getAtTimeBlood() != 0){
drinkBlood(damage);
}
System.out.println(this.name+"使用"+this.equipment.getName()+"对"+hero.getName()+"造成了"+damage+"的伤害。");
}

private boolean isCrit(){
if(this.Crit >= Math.random()){
System.out.println(this.getName()+"产生了暴击,伤害翻倍!");
return true;
}
else{
return false;
}
}

private void drinkBlood(double damage){
setAtTimeBlood((damage * this.drinkBloodNum)+getAtTimeBlood());
System.out.println(this.name+"使用饮血效果,吸血"+(damage * this.drinkBloodNum));
}




}











-------------------------------------------------------------------------------------------------------------------------


package hero;


import equipment.Equipment;


public class Warrior extends Hero{


public Warrior(String name, double attack, double defence, double maxBlood,
double atTimeBlood, double crit, double drinkBloodNum,
Equipment equipment) {
super(name, attack, defence, maxBlood, atTimeBlood, crit, drinkBloodNum,
equipment);
// TODO Auto-generated constructor stub
}

public void newHit(Hero hero){

if(Math.random() < 0.3){
if(Math.random() < 0.5){
roach();
}
else{
fear(hero);
}
}

else{
this.hit(hero);
}

}

private void roach(){

this.setAttack(this.getAttack()+20.0);

this.setDefence(this.getDefence()-10.0);

System.out.println("使用了咆哮技能,当前攻击力增加20防御力减少10,分别为:"+this.getAttack()+"   "+this.getDefence());

}

private void fear(Hero hero){

hero.setDefence(hero.getDefence()-20.0);

System.out.println("使用了恐惧技能,对方防御力减20,分别为:"+hero.getAttack()+"   "+hero.getDefence());

}


}


--------------------------------------------------------------------------------------------------------------------------------------



package hero;


import equipment.Equipment;


public class Wizard extends Hero{


public Wizard(String name, double attack, double defence, double maxBlood,
double atTimeBlood, double crit, double drinkBloodNum,
Equipment equipment) {
super(name, attack, defence, maxBlood, atTimeBlood, crit, drinkBloodNum,
equipment);
// TODO Auto-generated constructor stub
}

public void newHit(Hero hero){

if(Math.random()<0.3){

fire(hero);

}

else{
this.hit(hero);
}

}

private void fire(Hero hero){

hero.setAtTimeBlood(hero.getAtTimeBlood() - 100);

System.out.println("使用了火球术,直伤100点!");

}


}


-----------------------------------------------------------------------------------------------------------------


package game;


import equipment.Equipment;
import hero.*;




public class Game {

static Warrior hero1;

static Wizard hero2;

static Equipment equip;

public static void main(String[] args) {

init();


keepHit();

printResult();

/*System.out.println("等着,老子去换装备!");

System.out.print("充值中");

for (int i = 0; i < 10; i++) {


try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.print(".");

}
System.out.println();

init();

hero1.setEquipment(equip);


keepHit();

printResult();*/



}

/*public static void init(){

Equipment e1 = new Equipment("青龙偃月刀", 14.5, 10.1, 40, 0.3, 0.15);

Equipment e2 = new Equipment("长河落日弓", 13.6, 11.2, 50, 0.25,0.1);

Hero h1 = new Hero("德玛西亚",60.0,80.0,300.0,400.0,0.2,0.1,e1);

Hero h2 = new Hero("蒙多",95.0,49.0,250.0,300.0,0.4,0.1,e2);

hero1 = h1;

hero2 = h2;

Equipment e3 = new Equipment("GM氪金玄天杀神刀", 1000.0, 1000.0, 10000.0, 1.0,1.0);

equip = e3;

}*/

public static void init(){

Equipment e1 = new Equipment("时光杖", 27.0, 10.1, 500.0, 0.3, 0.15);

Equipment e2 = new Equipment("饮血刀", 13.6, 11.2, 500.0, 0.25,0.1);

Warrior h1 = new Warrior("德玛西亚",60.0,95.0,1000.0,1000.0,0.2,0.1,e2);

Wizard h2 = new Wizard("吉安娜",95.0,49.0,900.0,900.0,0.4,0.1,e1);

hero1 = h1;

hero2 = h2;


}

public static void keepHit(){

while(true){

if(hero1.getAtTimeBlood() == 0 || hero2.getAtTimeBlood() == 0){

break;

}

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

hero1.newHit(hero2);

if(hero1.getAtTimeBlood() == 0 || hero2.getAtTimeBlood() == 0){

break;

}

System.out.println(hero1.getName()+"当前血量值为"+hero1.getAtTimeBlood()+","+hero2.getName()+"当前血量值为"+hero2.getAtTimeBlood());

System.out.println("----------------------------------------------------------------------------------");

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

hero2.newHit(hero1);

System.out.println(hero1.getName()+"当前血量值为"+hero1.getAtTimeBlood()+","+hero2.getName()+"当前血量值为"+hero2.getAtTimeBlood());

System.out.println("----------------------------------------------------------------------------------");
}

}


/*public static void keepHit(){

while(true){

if(hero1.getAtTimeBlood() == 0 || hero2.getAtTimeBlood() == 0){

break;

}

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

hero1.hit(hero2);

if(hero1.getAtTimeBlood() == 0 || hero2.getAtTimeBlood() == 0){

break;

}

System.out.println(hero1.getName()+"当前血量值为"+hero1.getAtTimeBlood()+","+hero2.getName()+"当前血量值为"+hero2.getAtTimeBlood());

System.out.println("----------------------------------------------------------------------------------");

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

hero2.hit(hero1);

System.out.println(hero1.getName()+"当前血量值为"+hero1.getAtTimeBlood()+","+hero2.getName()+"当前血量值为"+hero2.getAtTimeBlood());

System.out.println("----------------------------------------------------------------------------------");


}

}*/

public static void printResult(){

if(hero1.getAtTimeBlood() > 0 && hero2.getAtTimeBlood() == 0){

System.out.println(hero2.getName()+"生命值为0");

System.out.println(hero1.getName()+"胜利");

}

else if(hero1.getAtTimeBlood() == 0 && hero2.getAtTimeBlood() > 0){

System.out.println(hero1.getName()+"生命值为0");

System.out.println(hero2.getName()+"胜利");

}

else{

System.out.println("生命值均为0");

System.out.println("平局!");

}

}


}

0 0
原创粉丝点击