Carta.php

<< Click to Display Table of Contents >>

Navigation:  Outros > Projeto Cheney >

Carta.php

Previous pageReturn to chapter overviewNext page

<?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();
    }
 
}