<< Click to Display Table of Contents >> Carta.php |
![]() ![]() ![]() |
<?php
class Carta {
public $naipe;
public $valor;
// letras constantes para valores especiais
const A = 1;
const J = 11;
const Q = 12;
const K = 13;
// em ordem de valor
const Ouros = 1;
const Espadas = 2;
const Copas = 3;
const Paus = 4;
public function __construct($naipe, $valor) {
$this->naipe = $naipe;
$this->valor = $valor;
}
public function IsMaiorQue(Carta $outra): bool {
if ($this->valor == $outra->valor) {
return $this->naipe > $outra->naipe;
} else {
return $this->valor > $outra->valor;
}
}
public function IsMenorQue(Carta $outra): bool {
return !$this->IsMaiorQue($outra);
}
public function Igual(Carta $outra): bool {
return ($this->naipe == $outra->naipe && $this->valor == $outra->valor);
}
private function getNaipeStr(): string {
switch ($this->naipe) {
case Carta::Copas:
return "copas";
case Carta::Paus:
return "paus";
case Carta::Espadas:
return "espadas";
case Carta::Ouros:
return "ouros";
default:
return "";
}
}
private function getValorStr(): string {
switch ($this->valor) {
case Carta::J:
return "J";
case Carta::Q:
return "Q";
case Carta::K:
return "K";
case Carta::A:
return "As";
default:
return $this->valor;
}
}
public function __toString() {
return $this->getValorStr() . " de " . $this->getNaipeStr();
}
public function toStr() {
return $this->getValorStr() . " de " . $this->getNaipeStr();
}
}