Skip to content

Instantly share code, notes, and snippets.

@guibranco
Last active July 11, 2018 21:23
Show Gist options
  • Save guibranco/09387918dcf83efb5aa9001e8a4db56d to your computer and use it in GitHub Desktop.
Save guibranco/09387918dcf83efb5aa9001e8a4db56d to your computer and use it in GitHub Desktop.
Simulação de batalha - Facebook - PHP Brasil - https://www.facebook.com/groups/142151625841770/permalink/1852337224823193/
<?php
class Batalha {
private $defesa = 15;
private $vida = 100;
public function Atacar($dano){
if($this->defesa > 0) //se possuir defesa, consome o dano primeiro da defesa, depois da vida
{
$remover = min($this->defesa, $dano);//pega o menor valor.
$this->defesa -= $remover; //consome da defesa o dano. Você pode mudar isso para ao invés de ter uma defesa como segunda vida, ser um percentual que diminui o dano apenas
$dano -= $remover; //atribui a dano apenas o que resta para ser removido da vida
}
if($dano == 0)
return;
$this->vida -= $dano; //remove da vida a quantidade de dano informado
if($this->vida <= 0) //se a vida for menor ou igual a 0
die("Game over"); //game over
}
public function AtacarCritico($dano){
$this->Atacar($dano * 2); //duplica o dano, já que é critico, e ataca.
}
public function Esquivar($esquiva){
$this->defesa += $esquiva;
}
public function Informacoes(){
echo "Sua esquiva/defesa é de: " . $this->defesa . " | ";
echo "Sua vida é de: " . $this->vida;
}
}
$batalha = new Batalha();
$batalha->Informacoes(); //Sua esquiva/defesa é de: 15 | Sua vida é de: 100
$batalha->Esquivar(100);
$batalha->Informacoes(); //Sua esquiva/defesa é de: 115 | Sua vida é de: 100
$batalha->AtacarCritico(60);
$batalha->InformacoeS(); //Sua esquiva/defesa é de: 0 | Sua vida é de: 95
$batalha->Atacar(95);//Game over
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment