Ejercicio Carta

Vamos a crear una clase ‘Carta’ que va a tener las siguientes propiedades:

Palo (de tipo string)
Numero (de tipo string)
Valor (de tipo entero)

Tenemos que crear un constructor que nos obligue a dar todos los valores. Implementar también setter y getter.

Crearemos una función __toString que nos mostrará el valor de la siguiente forma: ‘7 de espadas’

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
 
 
/**
 * Description of Carta
 *
 * @author incid
 */
class Carta {
    private $palo;
    private $numero;
    private $valor;
     
    function __construct($palo,$numero,$valor) {
        $this->setNumero($numero);
        $this->setPalo($palo);
        $this->setValor($valor);
    }
     
    function getPalo() {
        return $this->palo;
    }
 
    function getNumero() {
        return $this->numero;
    }
 
    function getValor() {
        return $this->valor;
    }
 
    function setPalo($palo) {
        $this->palo = $palo;
    }
 
    function setNumero($numero) {
        $this->numero = $numero;
    }
 
    function setValor($valor) {
        $this->valor = $valor;
    }
 
    function __toString() {
        return $this->getNumero()." de ".$this->getPalo();
    }
 
}
 
$miCarta=new Carta("Oros",7,7);
$otra=new Carta("Copas","Rey",10);
 
echo $otra;
 
$manoMus=[new Carta("Oros","Sota",10),new Carta("Copas",7,7),
    new Carta("Oros",4,4),new Carta("Bastos",1,1)];
 
var_dump($manoMus);
$puntos=0;
foreach($manoMus as $carta){
    echo $carta."<br>";
    $puntos+=$carta->getValor();
}
echo "Tienes $puntos puntos";
 
class BarajaMus{
    private $cartas=[];
    function __construct() {
        $this->crearBaraja();
    }
    private function crearBaraja(){
        $this->cartas=[];
        $palos=['Oros','Espadas','Copas','Bastos'];
        $numeros=["As",2,3,4,5,6,7,'Sota','Caballo','Rey'];
        $valores=[1,2,3,4,5,6,7,10,10,10];
        foreach($palos as $palo){
            for($i=0;$i<count($numeros);$i++){
                $this->cartas[]=new Carta($palo,$numeros[$i],$valores[$i]);
            }
        }
    }
    function barajar(){
        shuffle($this->cartas);
    }
}
 
$baraja=new BarajaMus();
$baraja->barajar();

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos