Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

class WrongState extends Exception{}



package personaggame;

class WrongState extends Exception{}

enum State{

normal,weak,dead;

}

enum Raca{

human,gnom,elf,ork,drakon;

}

class Person{

private final String name;

private final Raca raca;

private final int max_health;

private State state;

private int health;

Person(String name,Raca raca,int max_health)

{

this.name=name;

this.raca=raca;

this.max_health=max_health;

state=State.normal;

health=max_health;

 

}

public String getName(){

return name;

}

public Raca getRaca(){

return raca;

}

public State getState(){

return state;

}

public void setState(State state){

this.state=state;

}

public int getHealth(){

return health;

}

public void addHealth(int health){

this.health+=health;

}

public int getmaxHealth(){

return max_health;

}

public int equals(Person tmp){

if((float)((health/max_health)*100)>((float)(tmp.health/tmp.max_health)*100))

return 1;

if((float)((health/max_health)*100)<((float)(tmp.health/tmp.max_health)*100))

return -1;

else

return 0;

}

public void attack(Person tmp){

if(raca==tmp.raca)tmp.health-=10;

if(raca!=tmp.raca)tmp.health-=15;

if((((float)tmp.health/(float)tmp.max_health)*100)<10)

tmp.state=State.weak;

if(tmp.health<=0){

tmp.health=0;

tmp.state=State.dead;

}

}

public void livingWater()throws WrongState{

if(state==State.dead)

throw new WrongState();

else{

health+=5;

if(health>max_health)

health=max_health;

}

if((((float)health/(float)max_health)*100)>=10)

state=State.normal;

 

}

public String toString(){

return "Имя:"+name+" Раса:"+raca+" состояние:"+state

+" health:"+(((float)health/(float)max_health)*100)+"% max_health:"+max_health;

}

}

class Mag extends Person{

private final int max_mana;

private int mana;

Mag(String name,Raca raca,int max_health,int max_mana){

super(name,raca,max_health);

this.max_mana=max_mana;

mana=max_mana;

}

public void magHealth(Person tmp)throws WrongState{

if(tmp.getState()==State.dead)

throw new WrongState();

if(mana>60)

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

if(tmp.getHealth()<tmp.getmaxHealth()){

tmp.addHealth(1);

mana-=2;

if(mana<0)mana=0;

}

}

if((((float)tmp.getHealth()/(float)tmp.getmaxHealth())*100)>=10)

tmp.setState(State.normal);

}

public String toString(){

return "МАГ Имя:"+super.getName()+" Раса:"+super.getRaca()+" состояние:"+super.getState()

+" health:"+(((float)super.getHealth()/(float)super.getmaxHealth())*100)

+"% max_health:"+super.getmaxHealth()

+" мана:"+mana+" max_mana:"+max_mana;

}

}

public class PersonagGame {

public static void equalsHealth(Person tmp1,Person tmp2){

if(tmp1.equals(tmp2)==0)

System.out.println("у "+tmp1.getName()+" и "+tmp2.getName()+" проценты здоровья равны");

if(tmp1.equals(tmp2)==1)

System.out.println("у "+tmp1.getName()+" больше здоровья чем у "+tmp2.getName());

if(tmp1.equals(tmp2)==-1)

System.out.println("у "+tmp1.getName()+" меньше здоровья чем у "+tmp2.getName());

}

 

public static void main(String[] args) {

Person p1=new Person("Денис",Raca.human,200);

System.out.println(p1);

Person p2=new Person("Андрей",Raca.drakon,400);

System.out.println(p2);

equalsHealth(p1,p2);

p2.attack(p1);

for(int i=0;i<24;i++)

p1.attack(p2);

System.out.println(p1);

System.out.println(p2);

try{

p2.livingWater();

}

catch(WrongState e){

System.err.println(e);

}

System.out.println("\n"+p2);

Mag m1=new Mag("Деня",Raca.human,250,300);

System.out.println(m1);

try{

m1.magHealth(p2);

}

catch(WrongState e){

System.err.println(e);

}

System.out.println(p2);

for(int i=0;i<24;i++)

p1.attack(m1);

System.out.println(m1);

try{

m1.magHealth(m1);

}

catch(WrongState e){

System.err.println(e);

}

System.out.println(m1);



}

}


Дата добавления: 2015-11-04; просмотров: 16 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
import java.awt.event.ActionListener; | package point; //создаем собственный пакет

mybiblioteka.su - 2015-2024 год. (0.011 сек.)