php 模拟斗地主发牌简单易懂
闲来无聊,就写了这个方法,也算是熟悉下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 模拟斗地主发牌简单易懂的更多相关文章
- java 模拟斗地主发牌洗牌
一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...
- java集合--模拟斗地主发牌洗牌
import java.util.*; /** * @Date: 2020/6/17 19:53 */public class Test04 { public static void main(Str ...
- java模拟斗地主发牌看牌
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class Dou ...
- Java模拟斗地主发牌和洗牌
package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...
- Java基础知识强化之集合框架笔记71:模拟斗地主洗牌和发牌并对牌进行排序的案例
1. 模拟斗地主洗牌和发牌并对牌进行排序的原理图解: 2. 代码实现: 思路: • 创建一个HashMap集合 • 创建一个ArrayList集合 • 创建花色数组和点数数组 • 从0开始往HashM ...
- Java基础知识强化之集合框架笔记70:模拟斗地主洗牌和发牌(ArrayList)
1. 模拟斗地主洗牌和发牌 分析: A:创建一个牌盒 B:装牌 C:洗牌 D:发牌 E:看牌 2. 代码实现: package cn.itcast_03; im ...
- Map集合、HashMap集合、LinkedHashMap集合、Hashtable集合、Collections工具类和模拟斗地主洗牌和发牌
1.Map集合概述和特点 * A:Map接口概述 * 查看API可以知道: * 将键映射到值的对象 * 一个映射不能包含重复的键 * 每个键最多 ...
- 前端怎么用js模拟应用 JSON-通俗易懂
前端怎么用js模拟应用 JSON-通俗易懂,这是转载额 好多孩子 弄不明确复杂的json 格式的应用,以下从基础来看一看JSON.怎么玩, 事实上结构理解清了,写起来比html还爽吧. 0.前言 ...
- Unity NGUI 网络斗地主 -发牌 脚本交互
Unity NGUI 网络斗地主 -发牌 脚本交互 @By 灰太龙 Unity4.2.1f4 NGUI 3.0.4 本篇说的问题是脚本与控件的交互! 现在对界面进行了改进,先看副图! 1.制作发牌效果 ...
随机推荐
- redirect_uri参数错误解决方法
坑,微信改来改去的,找死人了,以前在“开发者中心”中,现在改在”接口权限“中了.
- 实现ios屏幕的横竖屏自适应
整理总结中... 刷新 可以通过 -setNeedsUpdateConstraints -layoutIfNeeded 两个方法来刷新约束的改变,使UIView重新布局, 和CoreGraphic的- ...
- [GeekBand] C++学习笔记(2)——BigThree、OOP
本篇笔记主要分为三个部分,第一部分是以String类为例的基于对象的编程,重点在于构造与析构.拷贝构造函数.拷贝赋值函数三个重要函数.这一部分与笔记(1)中的内容结合起来就是基于对象编程的主要内容.第 ...
- 把URL传递参数转变成自定义实体方法
先定义下要获取的实体: public class InputClass { public long Id { get; set; } public int Status { get; set; } p ...
- iOS数据库操作流程
SQLite最新的版本是3.0,使用之前应该先导入libsqlite3.0.dylib 1.导入流程 2.iOS中操作数据库的流程 打开数据库 准备SQL数据库 执行SQL数据库 语句完结 关闭数据库 ...
- apply()与call()的区别
一直都没太明白apply()与call()的具体使用原理,今日闲来无事,决定好好研究一番. JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法,它们的语 ...
- 出力csv
public static void ExportResultLog(System.Data.DataTable dt, string fileName, string path) { if (!Sy ...
- Android LruCache究竟是什么
源码: /frameworks/base/core/java/android/util/LruCache.java 文件开篇注释如下: A cache that holds strong refere ...
- 挑战Python-20160826
给你一字典a,如a={1:1,2:2,3:3},输出字典a的key,以','链接,如‘1,2,3'.
- RAC 安装完成后 节点间通信不依赖于SSH
RAC 安装完成后,想修改ssh 的端口.google了一下.原文https://community.oracle.com/thread/2444594?tstart=0 原文说的是11g,10g也好 ...