Skip to content

Instantly share code, notes, and snippets.

@willianmano
Created December 18, 2013 03:09
Show Gist options
  • Save willianmano/8016681 to your computer and use it in GitHub Desktop.
Save willianmano/8016681 to your computer and use it in GitHub Desktop.
Trabalho OO - Uema
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