<?php
/**
* Klasa reprezentująca talię
*/
class Talia {
/* @var $talia Karta[] */
private $talia = array();
/**
* Konstruktor inicjujący talię
*/
public function __construct() {
$kolory = array('Kier', 'Karo', 'Trefl', 'Pik');
$wartosci = array('As', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jupek', 'Dama', 'Krol');
foreach($wartosci as $wartosc) {
foreach ($kolory as $kolor) {
$this->talia[] = new Karta($kolor, $wartosc);
}
}
}
/**
*
* @return Karta losowa karta
*/
public function wybierzLosowa() {
$index = array_rand($this->talia);
$karta = $this->talia[$index];
unset ($this->talia[$index]);
return $karta;
}
/**
*
* @param Karta $karta wybiera Kartę, o ile jest w talii
* @return Karta
*/
public function wybierzKonkretna(Karta $karta) {
$index = $this->wTalii($karta);
if( $index !== false ) {
unset( $this->talia[ $index ] );
return $karta;
} else {
return false;
}
}
/**
*
* @param Karta $karta dodaje kartę do talii, o ile już nie istnieje
* @return bool true jeżeli dodane, false w przeciwnym wypadku
*/
public function odlozDoTalii(Karta $karta) {
if( $this->wTalii($karta) === false ){
$this->talia[] = $karta;
return true;
} else {
return false;
}
}
private function wTalii(Karta $karta) {
return array_search($karta, $this->talia);
}
}