Esempio n. 1
0
 public function testCompareTo()
 {
     // standard win/loss
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(5)));
     $hand1->add(new Card(new Rank(7)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(9)));
     $hand2->add(new Card(new Rank(9)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::LOSE);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::WIN);
     // with soft ace
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(RANK::ACE)));
     $hand1->add(new Card(new Rank(8)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(9)));
     $hand2->add(new Card(new Rank(9)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::WIN);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::LOSE);
     // another with soft ace
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(4)));
     $hand1->add(new Card(new Rank(RANK::QUEEN)));
     $hand1->add(new Card(new Rank(RANK::ACE)));
     $hand1->add(new Card(new Rank(3)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(8)));
     $hand2->add(new Card(new Rank(3)));
     $hand2->add(new Card(new Rank(5)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::WIN);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::LOSE);
     // push with soft ace
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(4)));
     $hand1->add(new Card(new Rank(RANK::ACE)));
     $hand1->add(new Card(new Rank(3)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(8)));
     $hand2->add(new Card(new Rank(3)));
     $hand2->add(new Card(new Rank(7)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::PUSH);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::PUSH);
     // bust
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(RANK::KING)));
     $hand1->add(new Card(new Rank(8)));
     $hand1->add(new Card(new Rank(RANK::KING)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(9)));
     $hand2->add(new Card(new Rank(9)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::LOSE);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::WIN);
 }
Esempio n. 2
0
<body>
<?php 
/**
*
*@author bibby <*****@*****.**>
$Id$
** //*/
require_once 'Poker.class.php';
$quota = 4;
while ($quota--) {
    //**
    $D = new Deck();
    $Hand = new Hand();
    foreach (range(1, 7) as $i) {
        $Hand->add($D->draw());
    }
    //*/
    /**
    	$Hand = new Hand();
    	$Hand->add( new Card(2,1) );
    	$Hand->add( new Card(3,1) );
    	$Hand->add( new Card(4,1) );
    	$Hand->add( new Card(5,1) );
    	$Hand->add( new Card(6,1) );
    	$Hand->add( new Card(7,2) );
    	$Hand->add( new Card(8,1) );
    	//*/
    $div = new HTMLTag("div", $Hand->rank(), array("class" => "row"));
    $col = new HTMLTag_Collection();
    foreach ($Hand->cards as $c) {
Esempio n. 3
0
<title></title>
<link rel="stylesheet" media="screen" type="text/css" href="poker.css" />
</head>

<body>
<?php 
require_once 'Poker.class.php';
$D = new Deck();
$Table = new Hand();
foreach (range(1, 5) as $i) {
    $Table->add($D->draw());
}
$players = range(1, 5);
foreach ($players as $k => $v) {
    $hole = new Hand();
    $hole->add($D->draw());
    $hole->add($D->draw());
    $players[$k] = $hole;
}
$center = new HTMLTag("center", $Table->show());
echo $center->parse();
echo "\n<hr />\n";
$full = array();
$WIN = Poker::rankHands($Table, $players, $full);
echo "<h2>" . intval(count($WIN)) . " winner(s)</h2>\n\n";
foreach ($players as $i => $h) {
    $out = Tpl::string('<div class="container{WINNER}">{HAND}<br />{EVAL}</div>');
    $win = in_array($i, $WIN);
    $out->setAttribs(array('WINNER' => $win ? ' winner' : '', 'HAND' => $h->show(), 'EVAL' => $full[$i]->rankName() . "<br />" . $full[$i]->printRun()));
    echo $out->parse();
}