我也不知道为什么一到周一就这么无聊,闲着没事干就开始准备水文了。然后就收到了我班同学邀请我去斗地主(微信小程序),灵感刷刷刷的就来了,与其呆着无聊,倒不如用php模拟一下斗地主的发牌。
首先我们需要生成一套扑克牌,我说需要有扑克牌,php就帮我生成了一套扑克牌
<?php
//生成所有扑克牌
$card = explode('|','2|3|4|5|6|7|8|9|10|J|Q|K|A');
foreach ($card as $value) {
$jokes[] = '方片'.$value;
$jokes[] = '梅花'.$value;
$jokes[] = '红桃'.$value;
$jokes[] = '黑桃'.$value;
}
差点忘了还有大王和小王
//别忘了大王和小王
$jokes[] = '大王';
$jokes[] = '小王';
这样我们就拥有了一套扑克牌,都存在了$jokes
这个变量里面了。
接着我们就开始给我们的玩家分发扑克牌了,我的思路是随机选择17张牌,当然选择的牌是不能重复出现的,要不然就是有人出老千了。
//生成第一个人的牌
for ($i=0; $i < 17; $i++) {
//取第几张牌
$num = rand(0,count($jokes)-1);
$first[] = $jokes[$num];
//重建索引
array_splice($jokes,$num,1);
}
//生成第二个人的牌
for ($i=0; $i < 17; $i++) {
//取第几张牌
$num = rand(0,count($jokes)-1);
$second[] = $jokes[$num];
//重建索引
array_splice($jokes,$num,1);
}
//生成第三个人的牌
for ($i=0; $i < 17; $i++) {
//取第几张牌
$num = rand(0,count($jokes)-1);
$third[] = $jokes[$num];
//重建索引
array_splice($jokes,$num,1);
}
这样我们的三个虚拟玩家也有了牌,而且是绝对公平的。 最后一步,我们就可以把牌都输出了。
//开始输出
echo "第一个孩纸:";
for ($i=0; $i < count($first); $i++) {
echo $first[$i].' ';
}
echo "\n";
echo "第二个孩纸:";
for ($i=0; $i < count($second); $i++) {
echo $second[$i].' ';
}
echo "\n";
echo "第三个孩纸:";
for ($i=0; $i < count($third); $i++) {
echo $third[$i].' ';
}
echo "\n";
echo "底牌:";
for ($i=0; $i < count($jokes); $i++) {
echo $jokes[$i].' ';
}
第一个孩纸:黑桃2 红桃9 小王 红桃10 方片6 方片K 黑桃6 梅花K 梅花6 红桃3 梅花10 方片2 梅花2 黑桃9 梅花J 梅花4 梅花A 第二个孩纸:红桃7 红桃K 梅花9 梅花Q 方片5 方片8 梅花5 黑桃10 黑桃J 大王 红桃5 方片3 红桃J 梅花8 红桃Q 梅花7 黑桃Q 第三个孩纸:红桃6 方片Q 黑桃5 方片4 方片J 梅花3 红桃2 方片9 黑桃K 方片A 黑桃A 红桃8 红桃4 黑桃3 黑桃7 方片7 方片10 底牌:黑桃4 黑桃8 红桃A
说不定等以后我无聊的时候,会把牌的排序和游戏规则都加进去。现在不敢想,还是以后再说吧
如无特殊说明《利用php模拟分发扑克牌(无聊之作)》为博主MoLeft原创,转载请注明原文链接为:https://moleft.cn/post-95.html