提示:文章将尽量保持精简,同时烦请诸位在代码编写中保持耐心。

文章目录

前言

一、斗地主式发牌解释(可跳过)

二、开发环境

​​​        1.该项目支持的开发环境:

三、实现步骤

1.HTML代码实现

2.CSS代码实现

3.完成效果

4.项目使用背景

四.文章末尾


​​​​前言

这篇文章是在我翻找了其他的有关 PHP 实现发牌效果的文章,发现很多都不怎么精炼,并且文章年份较为久远,还有就是没有达到斗地主式发牌的效果,综合之后写下此文。如有进一步的建议和指正,表示欢迎。


一、斗地主式发牌解释(可跳过)

对于斗地主式发牌,大部分玩过牌小伙伴应该明白,但还是有没玩过的小伙伴,所以在这里解释一下。斗地主式发牌:指一副54张牌的扑克,包括大小王在内,分别分发个三个玩家,其中一名玩家为地主,另外两名玩家为农民。发牌时先抽出三张地主牌,额外分发给地主玩家,因此地主玩家拥有20张牌,其余两名玩家拥有17张牌。过程中发牌与地主名称保持随机分发。

二、开发环境

1.该项目支持的开发环境:

  1. Apache 2.2~2.4
  2. PHP 5.3~7.1

三、实现步骤

1.HTML代码实现

为了更好的观看,在此将 css样式 与 html 代码错开编写,其中主要是对数组函数的运用,和对数组遍历和访问

html代码 如下:

<body><script>function cha(){var i = document.getElementById("test");  i.style.visibility="visible";}</script><?php// 建立一个牌池用来对数组保存$num = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'];$icon = ['♥' => 'red', '♦' => 'red', '♠' => 'black', '♣' => 'black'];// 生成扑克牌组$poker = [];foreach ($icon as $k => $v) {foreach ($num as $vv) {$poker[] =  "<font style=\"color:$v;\">$vv $k</font>";}}$poker[]="<font style=\"color:red;\">大王</font>";$poker[]="<font style=\"color:black;\">小王</font>";// 打乱牌组顺序shuffle($poker);//建立数组指针,用来随机代替‘大地主’$landowner = array(0=>'农民A',1=>'农民B',2=>'农民C');$lk = rand(0,2);echo '<div id=header>';echo '本轮地主: '.$landowner[$lk].'<br><br>';$landowner[$lk]='大地主';echo '</div>';?>//农民A样式<?php echo '<div id=box2>';echo '<img src="handsome1.jpg" width="55px" height="55px" />';echo $landowner[0].':&nbsp&nbsp';for ($i = 0; $i < 17; ++$i) { if($i==8){echo '<br><br>';}echo current($poker);next($poker);}echo '</div>';
//---------------------------------------------------//农民B样式echo '<div class="row">';echo '<div class="column" align="center">';echo '<p align="center">';echo '<img src="handsome2.jpg" width="55px" height="55px" />';echo $landowner[1].':&nbsp&nbsp'.'</p>';for ($i = 0; $i < 17; ++$i) {if($i==8){       //当输出到第8张牌时换行,防止重叠echo '<br><br>';}echo current($poker);next($poker);} echo '</div>';
//---------------------------------------------------//建立按钮组件,实现对地主牌的翻看echo '<div class="column" align="center">';echo '地主牌: '; echo '<div id="test">';   for ($i = 0; $i < 3; ++$i) {echo current($poker);next($poker);}echo '<br><br>'; echo '</div>';echo '<button onClick="cha()">翻看地主牌</button>';echo '</div>';
//---------------------------------------------------//农民C样式echo '<div class="column">';echo '<p align="center">';echo '<img src="handsome3.jpg" width="55px" height="55px" />';echo $landowner[2].':&nbsp&nbsp'.'</p>';for ($i = 0; $i < 17; ++$i) {if($i==8){echo '<br><br>';}echo current($poker);next($poker);} echo '</div>';echo '</div>';?>
</body>

2.CSS代码实现

CSS 样式代码如下:

<head>
<meta charset="utf-8">
<title>斗地主</title><style>body{background: url("poker.png") no-repeat;background-size: 100%;}div{margin:15px 0}font{border:1px solid #ccc;padding:6px 3px;margin-right:10px;background-color: white;}#test{visibility: hidden;}.column {float: left;width: 33.33%;}.row:after {content: "";display: table;clear: both;}@media screen and (max-width: 600px) {.column {width: 100%;}}#header{text-align: center;padding: 20px;height: 300px;}#box2{text-align: center;position:fixed;bottom: 0;width: 100%;height: 20%;}</style></head>

3.完成效果

会随机改变“地主”位置,点击“翻看地主牌”可以实现翻看,能够实现随机发牌。

4.项目使用背景

这里使用的背景图与三个玩家的头像,可自己提供,要注意修改图片名称。


四.文章末尾

感谢观看,欢迎建议!!!

简单步骤:PHP实现斗地主式随机发牌相关推荐

  1. JAVA之实现小项目——斗地主(随机发牌)

    斗地主逻辑分析 1.准备牌: 准备牌54张,存储到一个集合中[特殊牌大王.小王], 定义一个数组List colors = List.of( "♠", "♥", ...

  2. shuffle什么意思?python模拟随机发牌(斗地主、掼蛋)

    shuffle什么意思? 除了翻译成"拖曳摇摆地走;搅乱;推诿,推卸",还有洗牌的意思,随机但不重复. Shuffle the cards and deal out five to ...

  3. 网络斗地主游戏的完整设计与实现(五)随机发牌功能的实现

    在扑克牌游戏中,生成一幅随机打乱的牌型,然后分发给玩家,是必须要实现的基本功能. 基本原理肯定是使用随机数,但是只有随机数达不到效果,因为是要随机地打乱顺序,而不是仅仅生成54个随机数.因为随机数有可 ...

  4. 斗地主小游戏随机发牌PHP代码

    <?php header("Content-Type:text/html;charset=UTF-8"); $num=['A','2','3','4','5','6','7' ...

  5. java集合框架的练习之斗地主洗牌发牌的模拟(升级版)

    首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.csdn.net/striner/article/details/78489306 初级版只具有洗牌发牌 ...

  6. sql 执行顺序_10个简单步骤,完全理解SQL

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 多年前收藏在笔记中的一篇文章,今天偶然翻出,重读了一遍,依然大有收获.分享出来,大家一 ...

  7. nextcloud网站不安全_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...

    免费的云盘服务有很多,但是总感觉把重要文件存在上面不安全,动不动就跑路或者限速. 辛辛苦苦收集的学习资料,一夜直接可能就会付诸东流. 最稳妥的方式是存放在本地硬盘中,但是要进行共享或者不同设备之间进行 ...

  8. 百度云盘云知梦php_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...

    免费的云盘服务有很多,但是总感觉把重要文件存在上面不安全,动不动就跑路或者限速. 辛辛苦苦收集的学习资料,一夜直接可能就会付诸东流. 最稳妥的方式是存放在本地硬盘中,但是要进行共享或者不同设备之间进行 ...

  9. 为什么使用@tablename起别名产生的sql语句不能用_10个简单步骤,完全理解SQL

    多年前收藏在笔记中的一篇文章,今天偶然翻出,重读了一遍,依然大有收获.分享出来,大家一起探讨. 以本文是为了以下读者而特地编写的: 1. 在工作中会用到 SQL 但是对它并不完全了解的人. 2. 能够 ...

最新文章

  1. 一文提升你对深度学习分布式训练的整体认知!
  2. python整数二进制有多少个1_几种统计一个二进制数内有几个1的方法
  3. Android BLE开发(一):串口调试
  4. 设计模式(二)__装饰设计模式
  5. 信息系统项目管理案例3
  6. 5月28日任务 Apache和PHP结合、Apache默认虚拟主机
  7. SSL / TLS REST服务器–带有Spring和TomEE的客户端
  8. java 对象引用 弱引用吗_Java对象的强引用、软引用、弱引用和虚引用 笔记
  9. Python 更新set
  10. 稳定服务器头像,WordPress 修复 Gravatar 头像稳定服务器地址
  11. c语言中switch函数6,C语言萌新,想问问如何让下面那个switch函数输出的结果继续...
  12. 滴滴为什么接不到长途单?
  13. Linux Swap机制概述
  14. 如何写出优秀的开源简历
  15. Hash表的时间复杂度为什么是O(1)?
  16. cPanel主机自定义php.ini文件
  17. 课代表:ChatGPT及大模型专题研讨会
  18. 程序员,你需要些“脑力运动”了
  19. 直观理解Neural Tangent Kernel
  20. [GWCTF 2019]枯燥的抽奖

热门文章

  1. oracle更新行,Oracle更新多行
  2. kodi树莓派_树莓派Raspberry Pi 安装XBMC(Kodi)方法及使用教程
  3. CMake - 使用 target_sources() 提高源文件处理能力
  4. 消防给水及消火栓系统技术规范_技术实务第三篇第二章:消防给水及消火栓系统学习笔记...
  5. 使用Python--Matplotlib绘制三维图形
  6. 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(下)
  7. mcinabox运行库下载安装_手机mcinabox运行库安装包下载-mcinabox运行库文件手机版下载v1.0_289手游网...
  8. Opencv 简单视频播放器
  9. win10浏览器 html乱码怎么解决,win10浏览器乱码如何解决_win10浏览器字体乱码修复方法...
  10. AD-NeRF 由音频和人脸图像合成人脸视频并表现出自然的说话风格