php模拟实现斗地主发牌

本文实例为大家分享了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 >';
}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • PHP实现随机发扑克牌

    本文实例为大家分享了PHP实现随机发扑克牌的具体代码,供大家参考,具体内容如下 <!doctype html> <html> <!-- 随机发扑克牌 --> <head> <meta charset="UTF-8"> <title>随机发牌</title> <style> div{margin:15px 0} font{border:1px solid #ccc;padding:6px 3p

  • PHP实现随机发放扑克牌

    PHP编程:用PHP实现随机发放扑克牌 描述:一副扑克牌共54张(包括大.小王),用PHP制作一发牌器,向三人随机发牌: 编辑poker.php <!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php function poker(){ //建立数组保存牌组 $num = ['A','2','3','4','5','6','7','8','

  • Java模拟实现斗地主发牌

    本文实例为大家分享了Java模拟实现斗地主发牌的具体代码,供大家参考,具体内容如下 题目: 模拟斗地主的发牌实现,54张牌,每张牌不同的花色(红心,黑桃,方块,梅花),牌的点数(3,4,5,6,7,8,9,10,J,Q,K,A,2,King,Queen),另有三名玩家,要求(使用面向对象的方式实现): 1.随机产生一名地主 2.随机向三名玩家发牌,最后的底牌自动发给地主 3.显示出每名玩家手中的牌 4.要求根据点数自动对玩家手中的牌排序实现(*) 提示:玩家类,牌类,游戏类(算法) 步骤分析:

  • java模拟实现斗地主发牌小程序

    一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程 首先,我们需要买牌,新买来的牌都是按顺序摆放的,因此下一步是洗牌,最后就是发牌了,不过发牌的时候要注意还要在最后留三张底牌. 主要使用的类有 ArrayList:用来存储扑克,Collections用来洗牌. import java.util.ArrayList; import java.util.Collections; /* * 模拟斗地主发牌 一共54张牌 * 买牌 * 洗牌 * 发牌 * */ public cl

  • php模拟实现斗地主发牌

    本文实例为大家分享了php实现斗地主发牌的具体代码,供大家参考,具体内容如下 闲来无聊,就写了这个方法,也算是熟悉下php的数组操作,还请各位大神多指教.$arr 数组,好像有点问题,应该 2=>'方片2',3=>'梅花2',4=>'红心2',5=>'黑桃2', 等的顺序换下.看来牌打少了.估计这个方法,一般程序都不会用吧. <?php wash_card(); function wash_card(){ $tmp = $arr = array( 0=>'大王',1=&

  • python模拟实现斗地主发牌

    题目:趣味百题之斗地主 扑克牌是一种非常大众化的游戏,在计算机中有很多与扑克牌有关的游戏.例如,在Windows操作系统下自带的纸牌.红心大战等.在扑克牌类的游戏中,往往都需要执行洗牌操作,就是将一副牌完全打乱,使其排列没有规律. 要求: 1.54张扑克牌发个3个玩家,农民17张,地主20张. 2.自动生成一幅扑克牌组:洗牌:发牌到玩家手中:将玩家手中扑克牌按花色大小整理好.** ''' 趣味百题-发扑克牌-斗地主 请编程实现发扑克牌 Version: 0.1 Author: jasn Date

  • python模拟斗地主发牌

    本文实例为大家分享了python模拟斗地主发牌的具体代码,供大家参考,具体内容如下 题目:趣味百题之斗地主 扑克牌是一种非常大众化的游戏,在计算机中有很多与扑克牌有关的游戏.例如,在Windows操作系统下自带的纸牌.红心大战等.在扑克牌类的游戏中,往往都需要执行洗牌操作,就是将一副牌完全打乱,使其排列没有规律. 要求: 1.54张扑克牌发个3个玩家,农民17张,地主20张. 2.自动生成一幅扑克牌组:洗牌:发牌到玩家手中:将玩家手中扑克牌按花色大小整理好.** ''' 趣味百题-发扑克牌-斗地

  • java模拟斗地主发牌功能

    本文实例为大家分享了java模拟斗地主发牌的具体代码,供大家参考,具体内容如下 1.案例介绍 规则: 组装54张扑克牌 54张牌顺序打乱 三个玩家参与游戏,三人交替摸牌,每人17张牌,后三张留作底牌 查看三人各自手中的牌(按照牌的大小排序).底牌 2. 分析 1).准备牌: 完成数字与纸牌的映射关系: 使用双列Map(HashMap)集合,完成一个数字与字符串纸牌的对应关系(相当于一个字典). 2).洗牌: 通过数字完成洗牌发牌 发牌: 将每个人以及底牌设计为ArrayList,将后3张牌直接存

  • java代码实现斗地主发牌功能

    本文实例为大家分享了java实现斗地主发牌功能的具体代码,供大家参考,具体内容如下 实现斗地主发牌功能 共54张牌,地主比其他两名玩家多三张牌. 有一个card牌类和player玩家类,还有一个发牌类用于实现发牌的方法. 为了模拟每个玩家的牌都是随机的,我是这样想的: 1)初始化方法:用于将54张牌存到一个数组里,每张牌都一个唯一的序号. 2) 利用随机数,将每个序号打乱存到一个新数组里. 3)再根据序号取到初始化牌库数组内的牌,存到每个玩家的牌集合内. 附一个在老师指导下写的:斗地主发牌功能,

  • java实现模仿斗地主发牌

    本文实例为大家分享了java斗地主发牌的具体代码,供大家参考,具体内容如下 分析 这是一个模仿斗地主发牌的例子: 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 用0~53分别对应相应的花色和牌面值: 用shuffle随机打乱排序好的数字,起到洗牌的作用: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 实现方式 准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每

  • java实现斗地主发牌系统

    本文实例为大家分享了java实现斗地主发牌系统的具体代码,供大家参考,具体内容如下 玩家类 package com.softeem.example; import java.util.ArrayList; import java.util.List; /** * 玩家类 * */ public class Player { private String name; //名字 private boolean landowner; //是否地主 private List<Card> cards =

  • java实现斗地主发牌功能

    本文实例为大家分享了java实现斗地主发牌的具体代码,供大家参考,具体内容如下 参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色:三名玩家,其中地主比其他玩家多3张牌) 代码如下: 牌类 import java.util.Objects; /** * 3-10 J Q K A 2 King Queen 牌类 * * @author Administrator * */ public class Card { /** 牌面值 */ private String name; /**

随机推荐