Jakiś czas temu pisałem klase do pokera. Kod już trochę czasu ma ale działa dobrze

<?php
/**
* Klasa do gry w Pokera
*
* @Author: Michał Molenda
* @Contact: praca@michalmolenda.pl
* @Www: www.michalmolenda.pl
*/
class poker
{
private $talia = array(); private $karty = array(); private $zaklady = array();
/**
* Ustawienie tali kart
*
*/
public function __construct ()
{
array ( '9' , 'trefl' , 1
), array ( '10' , 'trefl' , 2
), array ( 'W' , 'trefl' , 3
), array ( 'D' , 'trefl' , 4
), array ( 'K' , 'trefl' , 5
), array ( 'A' , 'trefl' , 6
),
array ( '9' , 'karo' , 1
), array ( '10' , 'karo' , 2
), array ( 'W' , 'karo' , 3
), array ( 'D' , 'karo' , 4
), array ( 'K' , 'karo' , 5
), array ( 'A' , 'karo' , 6
),
array ( '9' , 'kier' , 1
), array ( '10' , 'kier' , 2
), array ( 'W' , 'kier' , 3
), array ( 'D' , 'kier' , 4
), array ( 'K' , 'kier' , 5
), array ( 'A' , 'kier', 6
),
array ( '9' , 'pik' , 1
), array ( '10' , 'pik' , 2
), array ( 'W' , 'pik' , 3
), array ( 'D' , 'pik' , 4
), array ( 'K' , 'pik' , 5
), array ( 'A' , 'pik' , 6
), );
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8,
0.9,
);
$this->talia = $talia;
$this->zaklady = $zaklady;
}
/**
* Rozdanie kart
*
* @param int $ile
*/
public function Rozdanie( $ile = 5 )
{
for ( $i = 0 ; $i < $ile ; $i++ )
{
if ( !empty ( $this->talia[$rand] ) ) {
$this->karty[] = $this->talia[$rand];
unset($this->talia[$rand]); }
else
$this->Rozdanie(1);
}
}
/**
* Zwraca talię
*
* @return array
*/
public function Talia()
{
return $this->talia;
}
/**
* Zwraca karty gracza
*
* @return array
*/
public function Karty ()
{
return $this->karty;
}
/**
* Ustawia tablicę z kartami
*
*/
public function setKarty($karty)
{
$this->karty = $karty;
}
/**
* Podmienia podane karty
*
* @param array $karty
*/
public function Podmien ( $karty )
{
{
foreach ( $karty as $row )
{
unset($this->karty[$row]); }
$this->Rozdanie($ile);
}
}
/**
* Obliczanie wygranej użytkownika
*
* @param int $stawka
*/
public function Sprawdz( $stawka )
{
$parm = array('type'=>0,'wygrana'=>0
);
// Poker królewski
if ( $this->isKrolewskiPoker() )
$parm = array('type'=>9,'wygrana'=>$stawka*$this->zaklady[8
]);
// Poker
if ( $this->isPoker() )
$parm = array('type'=>8,'wygrana'=>$stawka*$this->zaklady[7
]);
// Kareta
if ( $this->isKareta() )
$parm = array('type'=>7,'wygrana'=>$stawka*$this->zaklady[6
]);
// Ful
if ( $this->isFul() )
$parm = array('type'=>6,'wygrana'=>$stawka*$this->zaklady[5
]);
// Kolor
if ( $this->isKolor() )
$parm = array('type'=>5,'wygrana'=>$stawka*$this->zaklady[4
]);
// Strit
if ( $this->isStrit() )
$parm = array('type'=>4,'wygrana'=>$stawka*$this->zaklady[3
]);
// Trójka
if ( $this->isTrojka() )
$parm = array('type'=>3,'wygrana'=>$stawka*$this->zaklady[2
]);
// Dwie pary
if ( $this->isDwiePary() )
$parm = array('type'=>2,'wygrana'=>$stawka*$this->zaklady[1
]);
// Para
if ( $this->isPara() )
$parm = array('type'=>1,'wygrana'=>$stawka*$this->zaklady[0
]);
$parm['wygrana'] = round($parm['wygrana']);
return $parm;
}
/**
* Funkcja sprawdza czy jest para
*
*/
private function isPara ( )
{
foreach ( $this->karty as $row )
{
return true;
$t[] = $row[0];
}
return false;
}
/**
* Funkcja sprawdza czy są dwie pary
*
*/
private function isDwiePary()
{
foreach ( $this->karty as $row )
{
if ( empty ( $t[$row[0
]] ) ) $t[$row[0]] = 1;
else
{
$t[$row[0]] = $t[$row[0]]+1;
++$i;
}
}
if ( $i == 2 )
return true;
return false;
}
/**
* Funkcja sprawdza czy jest trójka
*
*/
private function isTrojka()
{
foreach ( $this->karty as $row )
{
if ( empty ( $t[$row[0
]] ) ) $t[$row[0]] = 1;
else
{
$t[$row[0]] = $t[$row[0]]+1;
}
}
return true;
return false;
}
/**
* Sprawdza czy użytkownik ma strita
*
*/
public function isStrit()
{
foreach ( $this->karty as $row )
{
$t[] = $row[2];
}
foreach ( $t as $key => $row )
{
if ( $key != 0 )
{
if ( ($row-1) == $t[$key-1] )
++$ile;
}
else
++$ile;
}
if ( $ile == 5 )
return true;
return false;
}
/**
* Sprawdza czy wszystkie karty sa jednego koloru
*
*/
public function isKolor()
{
foreach ( $this->karty as $key => $row )
{
if ( $key != 0 )
{
if ( $row[1] == $kolor )
++$i;
}
else
$kolor = $row[1];
}
if ( $i == 4 )
return true;
return false;
}
/**
* Sprawdza czy użytkownika ma fula
*/
private function isFul()
{
foreach ( $this->karty as $row )
{
if ( empty ( $t[$row[0
]] ) ) $t[$row[0]] = 1;
else
{
$t[$row[0]] = $t[$row[0]]+1;
}
}
return true;
return false;
}
/**
* Sprawdzanie czy użytkownik ma karetę
*/
private function isKareta()
{
foreach ( $this->karty as $row )
{
if ( empty ( $t[$row[0
]] ) ) $t[$row[0]] = 1;
else
{
$t[$row[0]] = $t[$row[0]]+1;
}
}
return true;
return false;
}
/**
* Sprawdzanie czy użytkownik ma pokera
*/
private function isPoker()
{
foreach ( $this->karty as $row )
{
$kolor = $row[1];
if ( $row[1] == $kolor )
$t[] = $row[2];
}
foreach ( $t as $key => $row )
{
if ( $key != 0 )
{
if ( ($row-1) == $t[$key-1] )
++$ile;
}
else
++$ile;
}
if ( $ile == 5 )
return true;
return false;
}
/**
* Sprawdza czy użytkownik ma królewskiego pokera
*/
private function isKrolewskiPoker()
{
foreach ( $this->karty as $row )
{
$kolor = $row[1];
if ( $row[1] == $kolor )
$t[] = $row[2];
}
{
foreach ( $t as $key => $row )
{
if ( $key != 0 )
{
if ( ($row-1) == $t[$key-1] )
++$ile;
}
else
++$ile;
}
}
if ( $ile == 5 )
return true;
return false;
}
}
?>