Znalazłem w internecie pewne zadanie z PHP.
<?php
/* Zbuduj PROTOTYP klasy "karta" która będzie symbolizować kartę do gry.
Z kartą można zrobić następujące rzeczy:
-położyć kartę na stół.
-wsiąść kartę ze stołu.
Powołaj potem nową kartę (obiekt) - Dama Kier i połóż ją na stół.
Pamiętaj przy tym że różne karty mają różne właściwości.
*/
class Karta {
private $WybiezKarte;
private $Stol = array();
private $TaliaKart = array();
private $aKarty = array('Kolor' => array('Kier' , 'Pik' , 'Serce' , 'Trefl') ,
'Oznaczenie' => array('As','2','3','4','5','6','7','8','9','10','Jupek','Dama','Krol') );
public function Karta (){
$this->WybiezKarte = '';
$this->SortujTalieKart();
}
private function SortujTalieKart(){
if(is_array($this->aKarty)){
foreach ($this->aKarty['Kolor'] as $TKolor){
foreach($this->aKarty['Oznaczenie'] as $TOznacznie){
$this->TaliaKart[] = $TOznacznie." ".$TKolor;
}
}
asort($this->TaliaKart);
return true;
}
return false;
}
private function StanKarty(){
if(in_array($this->WybiezKarte , $this->TaliaKart)){
print("Karta ".$this->WybiezKarte." znajduje w talli.
");
}else{
if(in_array($this->WybiezKarte , $this->Stol)){
print("Karta ".$this->WybiezKarte." znajduje sie na stole
");
}else{
print("Karta ".$this->WybiezKarte." nie znajduje sie w talli.
");
}
}
}
public function PolozKarteNaStol($NowaKarta = ''){
$this->WybiezKarte = $NowaKarta;
if(in_array($this->WybiezKarte , $this->TaliaKart)){
$klucz_tablicy_TK = array_search($this->WybiezKarte , $this->TaliaKart);
$this->Stol[$klucz_tablicy_TK] = $this->WybiezKarte;
unset($this->TaliaKart[$klucz_tablicy_TK]);
$this->StanKarty();
return true;
}else{
return false;
}
}
public function WezKarteZeStolu($BranaKarta = ''){
$this->WybiezKarte = $BranaKarta;
if(in_array($this->WybiezKarte , $this->Stol)){
$klucz_tablicy_S = array_search($this->WybiezKarte , $this->Stol);
$this->TaliaKart[$klucz_tablicy_S] = $this->WybiezKarte;
unset($this->Stol[$klucz_tablicy_S]);
$this->StanKarty();
return true;
}else{
return false;
}
}
public function Pokaz_Stol_z_Kartami(){
$txt = "
Stol z Kartami";
$txt .= "
- "; foreach ($this->Stol as $TK){ $txt .= "
- “.$TK.”"; } $txt .= "
"; $txt .= “----------------”; print($txt); } } $NowaTaliaKart = new Karta(); $NowaTaliaKart->PolozKarteNaStol(‘As Pik’); $NowaTaliaKart->WezKarteZeStolu(‘As Pik’); $NowaTaliaKart->PolozKarteNaStol(‘5 Pik’); $NowaTaliaKart->PolozKarteNaStol(‘8 Serce’); $NowaTaliaKart->PolozKarteNaStol(‘As2 Pik2’); //Wynik nie jest pokazywane ponieważ karta nie występuje w tablicy “TaliaKart” $NowaTaliaKart->PolozKarteNaStol(‘8 Trefl’); $NowaTaliaKart->PolozKarteNaStol(‘9 Kier’); $NowaTaliaKart->PolozKarteNaStol(‘2 Serce’); $NowaTaliaKart->WezKarteZeStolu(‘2 Serce’); $NowaTaliaKart->Pokaz_Stol_z_Kartami(); ?>[/code] Oto wynik :
[code]Karta As Pik znajduje sie na stole Karta As Pik znajduje w talli. Karta 5 Pik znajduje sie na stole Karta 8 Serce znajduje sie na stole Karta 8 Trefl znajduje sie na stole Karta 9 Kier znajduje sie na stole Karta 2 Serce znajduje sie na stole Karta 2 Serce znajduje w talli. Stol z Kartami * 5 Pik * 8 Serce * 8 Trefl * 9 Kier ----------------
Nie wiem czy dobrze zadanie interpretowałem , czy dało by się to zrobić nieco zgrabniej i prościej?
Jak coś źle zrobiłem to przepraszam >.< .