PHP实现随机发牌功能


一、实训目的

1、掌握数组相关知识。

2、熟练应用数组遍历。

二、实训内容

1、扑克牌是一种家喻户晓的纸牌游戏。一副扑克牌有54张牌,其中52张是正牌,另2张是副牌(大王和小王)。52张正牌又均分为13张一组,并以黑桃、红桃、梅花、方块四种花色表示各组,每组花色的牌包括从1-10(1通常表示为A)以及J、Q、K标示的13张牌,玩法千变万化,多种玩法。

请通过PHP编程实现扑克牌的随机发牌游戏,通过编程生成52章正牌,然后随机发给A、B、C三位玩家,每人10张牌。

任务一:生成扑克牌

<?php
// 建立数组保存的牌组池
$num = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'];
$icon = ['♥' => 'red', '♦' => 'red', '♠' => 'black', '♣' => 'black'];   
// 生成扑克牌组
$poker = [];
foreach ($icon as $iconkey => $iconvalue) {
        foreach ($num as $value) {
            //输出格式:数字+图形
            $poker[] = "<font style='color:$iconvalue'> {$value} {$iconkey}</font>";
        }
    }

    echo"生成的扑克牌";
print_r($poker);//打乱前的数组元素
echo'</br>';
//实现“洗牌”功能,将生成的牌打乱顺序
shuffle($poker);
echo'</br>';
echo"洗牌后的扑克牌";
print_r($poker);//打印打乱后的数组元素
?>

通过浏览器访问,运行结果如下图所示。

01

任务二:将扑克牌随机发给A\B\C三位玩家

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>随机发牌</title>
<style>
div{margin:15px 0} //对边框定义
font{border:1px solid #ccc;padding:6px 3px;margin-right:10px}
</style>
</head>
<body>
<div>玩家A 牌组</div>
<?php 
//遍历显示A家的牌

for ($i = 0; $i < 10; ++$i) {
    echo current($poker);
    next($poker);
}
 ?>
<div>玩家B 牌组</div>
<?php 
//遍历显示B家的牌

for ($i = 0; $i < 10; ++$i) {
    echo current($poker);
    next($poker);
}
 ?>
<div>玩家C 牌组</div>
<?php 
//遍历显示C家的牌

for ($i = 0; $i < 10; ++$i) {
    echo current($poker);
    next($poker);
}
 ?>
</body>
</html>

通过浏览器访问,运行结果如下图所示(每次刷新生成的牌组都不同)。

2


文章作者: 桑落
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 桑落 !
评论
  目录