闲来无聊,就写了这个方法,也算是熟悉下php的数组操作,还请各位大神多指教。$arr 数组,好像有点问题,应该 2=>'方片2',3=>'梅花2',4=>'红心2',5=>'黑桃2', 等的顺序换下。看来牌打少了。估计这个方法,一般程序都不会用吧。呵呵

<?php
wash_card();
function wash_card(){
$tmp = $arr = array(
0=>'大王',1=>'小王',
2=>'方片2',3=>'梅花2',4=>'红心2',5=>'黑桃2',
6=>'方片A',7=>'梅花A',8=>'红心A',9=>'黑桃A',
10=>'方片K',11=>'梅花K',12=>'红心K',13=>'黑桃K',
14=>'方片Q',15=>'梅花Q',16=>'红心Q',17=>'黑桃Q',
18=>'方片J',19=>'梅花J',20=>'红心J',21=>'黑桃J',
22=>'方片10',23=>'梅花10',24=>'红心10',25=>'黑桃10',
26=>'方片9',27=>'梅花9',28=>'红心9',29=>'黑桃9',
30=>'方片8',31=>'梅花8',32=>'红心8',33=>'黑桃8',
34=>'方片7',35=>'梅花7',36=>'红心7',37=>'黑桃7',
38=>'方片6',39=>'梅花6',40=>'红心6',41=>'黑桃6',
42=>'方片5',43=>'梅花5',44=>'红心5',45=>'黑桃5',
46=>'方片4',47=>'梅花4',48=>'红心4',49=>'黑桃4',
50=>'方片3',51=>'梅花3',52=>'红心3',53=>'黑桃3',
); foreach($arr as $k=>$v){
$index = rand(0,54 - $k -1);
$key = array_search($tmp[$index], $arr);
$cards[$key] = $tmp[$index];
unset($tmp[$index]);
$tmp = array_values($tmp);
} $landowner = array(0=>'用户一',1=>'用户二',2=>'用户三');
$lk = rand(0,2);
echo '本轮地主:  '.$landowner[$lk].'<br >'; $card['landwehr']['cards'] = array_slice($cards, 0, 3, true);
ksort($card['landwehr']['cards']);
echo '地主:  '.implode('  ',$card['landwehr']['cards']).'<br >'; $card['user1']['cards'] = array_slice($cards, 3, 17, true);
ksort($card['user1']['cards']);
echo '用户一:  '.implode('  ',$card['user1']['cards']).'<br >'; $card['user2']['cards'] =array_slice($cards, 20, 17, true);
ksort($card['user2']['cards']);
echo '用户二:  '.implode('  ',$card['user2']['cards']).'<br >'; $card['user3']['cards'] = array_slice($cards, 37, 17, true);
ksort($card['user3']['cards']);
echo '用户三:  '.implode('  ',$card['user3']['cards']).'<br >';
} ?>

php 模拟斗地主发牌简单易懂的更多相关文章

  1. java 模拟斗地主发牌洗牌

    一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...

  2. java集合--模拟斗地主发牌洗牌

    import java.util.*; /** * @Date: 2020/6/17 19:53 */public class Test04 { public static void main(Str ...

  3. java模拟斗地主发牌看牌

    import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class Dou ...

  4. Java模拟斗地主发牌和洗牌

    package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...

  5. Java基础知识强化之集合框架笔记71:模拟斗地主洗牌和发牌并对牌进行排序的案例

    1. 模拟斗地主洗牌和发牌并对牌进行排序的原理图解: 2. 代码实现: 思路: • 创建一个HashMap集合 • 创建一个ArrayList集合 • 创建花色数组和点数数组 • 从0开始往HashM ...

  6. Java基础知识强化之集合框架笔记70:模拟斗地主洗牌和发牌(ArrayList)

    1. 模拟斗地主洗牌和发牌 分析:     A:创建一个牌盒     B:装牌     C:洗牌     D:发牌     E:看牌 2. 代码实现: package cn.itcast_03; im ...

  7. Map集合、HashMap集合、LinkedHashMap集合、Hashtable集合、Collections工具类和模拟斗地主洗牌和发牌

    1.Map集合概述和特点 * A:Map接口概述  * 查看API可以知道:          * 将键映射到值的对象          * 一个映射不能包含重复的键          * 每个键最多 ...

  8. 前端怎么用js模拟应用 JSON-通俗易懂

    前端怎么用js模拟应用 JSON-通俗易懂,这是转载额 好多孩子 弄不明确复杂的json 格式的应用,以下从基础来看一看JSON.怎么玩, 事实上结构理解清了,写起来比html还爽吧. 0.前言   ...

  9. Unity NGUI 网络斗地主 -发牌 脚本交互

    Unity NGUI 网络斗地主 -发牌 脚本交互 @By 灰太龙 Unity4.2.1f4 NGUI 3.0.4 本篇说的问题是脚本与控件的交互! 现在对界面进行了改进,先看副图! 1.制作发牌效果 ...

随机推荐

  1. redirect_uri参数错误解决方法

    坑,微信改来改去的,找死人了,以前在“开发者中心”中,现在改在”接口权限“中了.

  2. 实现ios屏幕的横竖屏自适应

    整理总结中... 刷新 可以通过 -setNeedsUpdateConstraints -layoutIfNeeded 两个方法来刷新约束的改变,使UIView重新布局, 和CoreGraphic的- ...

  3. [GeekBand] C++学习笔记(2)——BigThree、OOP

    本篇笔记主要分为三个部分,第一部分是以String类为例的基于对象的编程,重点在于构造与析构.拷贝构造函数.拷贝赋值函数三个重要函数.这一部分与笔记(1)中的内容结合起来就是基于对象编程的主要内容.第 ...

  4. 把URL传递参数转变成自定义实体方法

    先定义下要获取的实体: public class InputClass { public long Id { get; set; } public int Status { get; set; } p ...

  5. iOS数据库操作流程

    SQLite最新的版本是3.0,使用之前应该先导入libsqlite3.0.dylib 1.导入流程 2.iOS中操作数据库的流程 打开数据库 准备SQL数据库 执行SQL数据库 语句完结 关闭数据库 ...

  6. apply()与call()的区别

    一直都没太明白apply()与call()的具体使用原理,今日闲来无事,决定好好研究一番. JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法,它们的语 ...

  7. 出力csv

    public static void ExportResultLog(System.Data.DataTable dt, string fileName, string path) { if (!Sy ...

  8. Android LruCache究竟是什么

    源码: /frameworks/base/core/java/android/util/LruCache.java 文件开篇注释如下: A cache that holds strong refere ...

  9. 挑战Python-20160826

    给你一字典a,如a={1:1,2:2,3:3},输出字典a的key,以','链接,如‘1,2,3'.

  10. RAC 安装完成后 节点间通信不依赖于SSH

    RAC 安装完成后,想修改ssh 的端口.google了一下.原文https://community.oracle.com/thread/2444594?tstart=0 原文说的是11g,10g也好 ...