demasiadas clases que no hacen nada,
te dejo mi codigo chapuza de 10 minutos, se que se puede mejorar de mil manera pero te servirá tienes herencia, bucles, condicionales y algunas cositas mas.
Código PHP:
Ver original<?php
class BATALLA{
private $ronda;
/**
* Constructor del objeto BATALLA
*/
public function __construct(){
$this->ronda = 0;
$ORCO = new ORCO();
$PALADIN = new PALADIN();
$jugador = 1;
while($ORCO->getVida()>=1 && $PALADIN->getVida() >= 1){
if($jugador == 1){
//Ataque del Orco
$subtotataque = $ORCO->ataque()- $PALADIN->defensa();
$PALADIN->restarVida($subtotataque);
echo "Ataque del Orco --> ".$subtotataque." de daño.<br />";
}else{
//Defensa del Orco
$subtotdefensa = $PALADIN->ataque()- $ORCO->defensa();
$PALADIN->restarVida($subtotdefensa);
echo "Defensa del Orco --> ".$subtotataque." de daño.<br />";
}
$jugador = 2;
}else{
//Ataque del Paladin
$subtotataque = $PALADIN->ataque()- $ORCO->defensa();
$ORCO->restarVida($subtotataque);
echo "Ataque del Paladin --> ".$subtotataque." de daño.<br />";
}else{
//Defensa del Paladin
$subtotdefensa = $ORCO->ataque()- $PALADIN->defensa();
$ORCO->restarVida($subtotdefensa);
echo "Defensa del Paladin --> ".$subtotdefensa." de daño.<br />";
}
$jugador = 1;
}
echo "Fin de la ronda ".$this->ronda.". Paladin:".$PALADIN->getVida()." | Orco: ".$ORCO->getVida()."<br />";
$this->ronda++;
}
echo "<h2>Fin de la Partida</h2>";
if($PALADIN->getVida() > $ORCO->getVida()){
echo "Ganador el PALADIN con ".$PALADIN->getVida()." puntos de vida";
}else{
echo "Ganador el ORCO con ".$ORCO->getVida()." puntos de vida";
}
}
}
class JUGADOR{
protected $vida = 100;
protected $ataque = 2;
protected $defensa = 2;
public function ataque(){
return $this->ataque+rand(-3,3); }
public function defensa(){
return $this->defensa+rand(-2,2); }
public function getVida(){
return $this->vida;
}
public function restarVida($resta){
if($resta >=1){
$this->vida= $this->vida - $resta;
}
}
}
class ORCO extends JUGADOR{
public function __construct(){
$this->ataque = 1;
$this->defensa = 5;
}
}
class PALADIN extends JUGADOR{
public function __construct(){
$this->ataque = 5;
$this->defensa = 2;
}
}
$BATALLA = new BATALLA();
?>
Espero que te sirva y admito criticas