Example #1
0
    echo '[' . $players[$key] . ']  ';
    sort($val);
    $cardObj->watch_card($val);
}
echo '<hr>';
// 遊戲開始
$flow = new Flow();
$tab = new Table();
$flow::$members = count($players);
// 第一手
$card = $flow->fire($groups);
$tab->add($card);
echo $players[$flow->now_player()] . ' : ' . $suit[$card] . '<br>';
for ($i = 0; $i < 55; $i++) {
    $flow->move_next();
    $card = $flow->run($tab->get_on_table());
    if (!$card) {
        echo '[' . $i . '] ' . $players[$flow->now_player()] . ' : PASS ! <br>';
        continue;
        // 沒牌了
    }
    if ($card > 0) {
        $tab->add($card);
        $show_card = $suit[$card];
    } else {
        $tab->discard($flow->now_player(), -intval($card));
        $show_card = "<font color='blue'>蓋牌 " . $suit[-intval($card)] . "</font>";
    }
    echo '[' . $i . '] ' . $players[$flow->now_player()] . ' : ' . $show_card . '<br>';
    // test
    foreach ($flow->hands() as $key => $val) {
Example #2
0
fwrite(STDOUT, $players[$flow->now_player()] . '出牌: ' . $suit[$card]);
for ($i = 0; $i < 55; $i++) {
    $flow->move_next();
    fwrite(STDOUT, " || " . $players[$flow->now_player()] . "請出牌:");
    $str = trim(fgets(STDIN));
    if (empty($str)) {
        fwrite(STDOUT, "Empty input str, try again.");
        $flow->move_back();
        $i--;
        continue;
    }
    $tmp = explode(",", $str);
    // (Call=1|Fold=2),SUIT(0|1|2|3),NUMBER
    $action = $tmp[0];
    $input = $tmp[1] * 13 + $tmp[2];
    $card = $flow->run($tab->get_on_table(), $action, $input);
    if (isset($card['error'])) {
        fwrite(STDOUT, $card['error'] . ": " . $tmp[2] . " try again.");
        $flow->move_back();
        $i--;
        continue;
    }
    if (!$card) {
        fwrite(STDOUT, " || " . $players[$flow->now_player()] . ":PASS! ");
        continue;
        // 沒牌了
    }
    if ($card > 0) {
        $tab->add($card);
        $show_card = $suit[$card];
        fwrite(STDOUT, " || " . $players[$flow->now_player()] . "出牌:" . $show_card);