Created
December 18, 2013 03:09
-
-
Save willianmano/8016681 to your computer and use it in GitHub Desktop.
Trabalho OO - Uema
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Random; | |
class TrabalhoOO { | |
public static void main(String[] args) | |
{ | |
Personagem personagem1 = new Personagem("Willian","Mago",150,10,5,100,50,1); | |
Personagem personagem2 = new Personagem("Monstro do RU","Cavaleiro",10,80,30,30,115,1); | |
System.out.println("Nome do personagem: " + personagem1.nome); | |
System.out.println("Vida do personagem: " + personagem1.getVida()); | |
System.out.println("Nome do personagem: " + personagem2.nome); | |
System.out.println("Vida do personagem: " + personagem2.getVida()); | |
PVP pvp = new PVP(); | |
Personagem vencedor = pvp.batalhar(personagem1, personagem2); | |
System.out.println("Vencedor: " + vencedor.nome); | |
System.out.println("Vida: " + vencedor.getVida()); | |
} | |
} | |
class Personagem { | |
String nome; | |
String classe; | |
int inteligencia; | |
int forca; | |
int agilidade; | |
int destreza; | |
int vitalidade; | |
int sorte; | |
private int vidaBase = 1500; | |
protected int vida; | |
Personagem (String nome, String classe, int inteligencia, int forca, int agilidade, int destreza, int vitalidade, int sorte) | |
{ | |
this.nome = nome; | |
this.classe = classe; | |
this.inteligencia = inteligencia; | |
this.forca = forca; | |
this.agilidade = agilidade; | |
this.destreza = destreza; | |
this.vitalidade = vitalidade; | |
this.sorte = sorte; | |
//calcula a vida do personagem | |
this.vida = calculaVida(); | |
} | |
protected int calculaVida() | |
{ | |
vidaBase = this.vidaBase + this.vitalidade * 10; | |
return vidaBase; | |
} | |
public int getVida() | |
{ | |
return this.vida; | |
} | |
public void diminuiVida(int dano) | |
{ | |
this.vida = this.vida - dano; | |
} | |
} | |
class PVP { | |
public Personagem batalhar(Personagem personagem1, Personagem personagem2) | |
{ | |
while(personagem1.getVida() > 0 && personagem2.getVida() > 0) { | |
Random gerador = new Random(); | |
boolean resultado = gerador.nextBoolean(); | |
Dano dano = new Dano(); | |
int danoPersonagem; | |
if (resultado) { | |
//dano do personagem 1 | |
danoPersonagem = dano.calculaDano(personagem1); | |
//dano do personagem 1 no personagem 2 | |
personagem2.diminuiVida(danoPersonagem); | |
} else { | |
//dano do personagem 2 | |
danoPersonagem = dano.calculaDano(personagem2); | |
//dano do personagem 2 no personagem 1 | |
personagem1.diminuiVida(danoPersonagem); | |
} | |
} | |
if (personagem1.getVida() > personagem2.getVida()) { | |
return personagem1; | |
} else { | |
return personagem2; | |
} | |
} | |
} | |
class Dano { | |
int calculaDano(Personagem personagem) | |
{ | |
Double dano; | |
Random random = new Random(); | |
double danoCalc; | |
switch( personagem.classe ) | |
{ | |
case "Mago": | |
danoCalc = 0.3 + (1 - 0.3) * random.nextDouble(); | |
dano = personagem.inteligencia + (personagem.inteligencia * danoCalc); | |
break; | |
case "Cavaleiro": | |
danoCalc = 0.3 + (1 - 0.3) * random.nextDouble(); | |
dano = personagem.forca + (personagem.forca * danoCalc); | |
break; | |
default: | |
danoCalc = 0.1 + (1 - 0.1) * random.nextDouble(); | |
dano = personagem.forca + (personagem.forca * danoCalc); | |
} | |
return dano.intValue(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment