简单步骤:PHP实现斗地主式随机发牌
提示:文章将尽量保持精简,同时烦请诸位在代码编写中保持耐心。
文章目录
前言
一、斗地主式发牌解释(可跳过)
二、开发环境
1.该项目支持的开发环境:
三、实现步骤
1.HTML代码实现
2.CSS代码实现
3.完成效果
4.项目使用背景
四.文章末尾
前言
这篇文章是在我翻找了其他的有关 PHP 实现发牌效果的文章,发现很多都不怎么精炼,并且文章年份较为久远,还有就是没有达到斗地主式发牌的效果,综合之后写下此文。如有进一步的建议和指正,表示欢迎。
一、斗地主式发牌解释(可跳过)
对于斗地主式发牌,大部分玩过牌小伙伴应该明白,但还是有没玩过的小伙伴,所以在这里解释一下。斗地主式发牌:指一副54张牌的扑克,包括大小王在内,分别分发个三个玩家,其中一名玩家为地主,另外两名玩家为农民。发牌时先抽出三张地主牌,额外分发给地主玩家,因此地主玩家拥有20张牌,其余两名玩家拥有17张牌。过程中发牌与地主名称保持随机分发。
二、开发环境
1.该项目支持的开发环境:
- Apache 2.2~2.4
- 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].':  ';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].':  '.'</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].':  '.'</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实现斗地主式随机发牌相关推荐
- JAVA之实现小项目——斗地主(随机发牌)
斗地主逻辑分析 1.准备牌: 准备牌54张,存储到一个集合中[特殊牌大王.小王], 定义一个数组List colors = List.of( "♠", "♥", ...
- shuffle什么意思?python模拟随机发牌(斗地主、掼蛋)
shuffle什么意思? 除了翻译成"拖曳摇摆地走;搅乱;推诿,推卸",还有洗牌的意思,随机但不重复. Shuffle the cards and deal out five to ...
- 网络斗地主游戏的完整设计与实现(五)随机发牌功能的实现
在扑克牌游戏中,生成一幅随机打乱的牌型,然后分发给玩家,是必须要实现的基本功能. 基本原理肯定是使用随机数,但是只有随机数达不到效果,因为是要随机地打乱顺序,而不是仅仅生成54个随机数.因为随机数有可 ...
- 斗地主小游戏随机发牌PHP代码
<?php header("Content-Type:text/html;charset=UTF-8"); $num=['A','2','3','4','5','6','7' ...
- java集合框架的练习之斗地主洗牌发牌的模拟(升级版)
首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.csdn.net/striner/article/details/78489306 初级版只具有洗牌发牌 ...
- sql 执行顺序_10个简单步骤,完全理解SQL
点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 多年前收藏在笔记中的一篇文章,今天偶然翻出,重读了一遍,依然大有收获.分享出来,大家一 ...
- nextcloud网站不安全_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...
免费的云盘服务有很多,但是总感觉把重要文件存在上面不安全,动不动就跑路或者限速. 辛辛苦苦收集的学习资料,一夜直接可能就会付诸东流. 最稳妥的方式是存放在本地硬盘中,但是要进行共享或者不同设备之间进行 ...
- 百度云盘云知梦php_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...
免费的云盘服务有很多,但是总感觉把重要文件存在上面不安全,动不动就跑路或者限速. 辛辛苦苦收集的学习资料,一夜直接可能就会付诸东流. 最稳妥的方式是存放在本地硬盘中,但是要进行共享或者不同设备之间进行 ...
- 为什么使用@tablename起别名产生的sql语句不能用_10个简单步骤,完全理解SQL
多年前收藏在笔记中的一篇文章,今天偶然翻出,重读了一遍,依然大有收获.分享出来,大家一起探讨. 以本文是为了以下读者而特地编写的: 1. 在工作中会用到 SQL 但是对它并不完全了解的人. 2. 能够 ...
最新文章
- 一文提升你对深度学习分布式训练的整体认知!
- python整数二进制有多少个1_几种统计一个二进制数内有几个1的方法
- Android BLE开发(一):串口调试
- 设计模式(二)__装饰设计模式
- 信息系统项目管理案例3
- 5月28日任务 Apache和PHP结合、Apache默认虚拟主机
- SSL / TLS REST服务器–带有Spring和TomEE的客户端
- java 对象引用 弱引用吗_Java对象的强引用、软引用、弱引用和虚引用 笔记
- Python 更新set
- 稳定服务器头像,WordPress 修复 Gravatar 头像稳定服务器地址
- c语言中switch函数6,C语言萌新,想问问如何让下面那个switch函数输出的结果继续...
- 滴滴为什么接不到长途单?
- Linux Swap机制概述
- 如何写出优秀的开源简历
- Hash表的时间复杂度为什么是O(1)?
- cPanel主机自定义php.ini文件
- 课代表:ChatGPT及大模型专题研讨会
- 程序员,你需要些“脑力运动”了
- 直观理解Neural Tangent Kernel
- [GWCTF 2019]枯燥的抽奖
热门文章
- oracle更新行,Oracle更新多行
- kodi树莓派_树莓派Raspberry Pi 安装XBMC(Kodi)方法及使用教程
- CMake - 使用 target_sources() 提高源文件处理能力
- 消防给水及消火栓系统技术规范_技术实务第三篇第二章:消防给水及消火栓系统学习笔记...
- 使用Python--Matplotlib绘制三维图形
- 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(下)
- mcinabox运行库下载安装_手机mcinabox运行库安装包下载-mcinabox运行库文件手机版下载v1.0_289手游网...
- Opencv 简单视频播放器
- win10浏览器 html乱码怎么解决,win10浏览器乱码如何解决_win10浏览器字体乱码修复方法...
- AD-NeRF 由音频和人脸图像合成人脸视频并表现出自然的说话风格