用PHP实现扑克牌比大小,两人抽牌,每人牌数5张,有四种花色。给出完整代码
时间: 2024-02-25 16:56:26 浏览: 152
程序开发扑克牌比较大小的游戏
以下是用 PHP 实现扑克牌比大小,两人抽牌,每人牌数 5 张,有四种花色的完整代码:
```php
<?php
// 定义扑克牌的点数和花色
$card_points = array(
'A' => 14,
'K' => 13,
'Q' => 12,
'J' => 11,
'10' => 10,
'9' => 9,
'8' => 8,
'7' => 7,
'6' => 6,
'5' => 5,
'4' => 4,
'3' => 3,
'2' => 2
);
$card_suits = array(
'Spades' => 4,
'Hearts' => 3,
'Diamonds' => 2,
'Clubs' => 1
);
// 定义每张扑克牌的值
$card_value = array();
foreach ($card_points as $point => $value) {
foreach ($card_suits as $suit => $suit_value) {
$card_value[$point . $suit] = $value * 10 + $suit_value;
}
}
// 比较两张扑克牌的大小
function compare($card1, $card2) {
global $card_value;
return $card_value[$card1] > $card_value[$card2];
}
// 对多张扑克牌进行排序
function sort_cards($cards) {
for ($i = 0; $i < count($cards); $i++) {
for ($j = $i + 1; $j < count($cards); $j++) {
if (compare($cards[$i], $cards[$j])) {
$temp = $cards[$i];
$cards[$i] = $cards[$j];
$cards[$j] = $temp;
}
}
}
return $cards;
}
// 生成一副扑克牌
function generate_deck() {
global $card_value;
$deck = array_keys($card_value);
shuffle($deck);
return $deck;
}
// 抽牌
function deal_cards($deck, $num) {
$cards = array();
for ($i = 0; $i < $num; $i++) {
$cards[] = array_pop($deck);
}
return $cards;
}
// 比较两手牌的大小
function compare_hands($hand1, $hand2) {
$hand1 = sort_cards($hand1);
$hand2 = sort_cards($hand2);
for ($i = 0; $i < count($hand1); $i++) {
if (compare($hand1[$i], $hand2[$i])) {
return true;
} elseif (compare($hand2[$i], $hand1[$i])) {
return false;
}
}
return false;
}
// 生成一副扑克牌
$deck = generate_deck();
// 抽牌
$hand1 = deal_cards($deck, 5);
$hand2 = deal_cards($deck, 5);
// 打印两手牌
echo "Player 1: " . implode(', ', $hand1) . PHP_EOL;
echo "Player 2: " . implode(', ', $hand2) . PHP_EOL;
// 比较两手牌的大小
if (compare_hands($hand1, $hand2)) {
echo "Player 1 wins!" . PHP_EOL;
} else {
echo "Player 2 wins!" . PHP_EOL;
}
?>
```
在上面的代码中,首先定义了扑克牌的点数和花色,然后根据这些定义生成了每张扑克牌的值。接着,定义了比较两张扑克牌大小和对多张扑克牌进行排序的函数。接下来,定义了生成一副扑克牌和抽牌的函数。最后,定义了比较两手牌大小的函数,并且在主程序中使用这些函数生成两手牌并比较它们的大小。
阅读全文