十三水中各种牌型判断LUA版
近期回归程序行业,由于业务需求需要做十三水游戏,什么是十三水就不在多讲,下面是判断十三水牌型的方法(带大小王)
GetSSSPaiType = {};
local this = GetSSSPaiType;
local huaseTable = {};
local numTable = {};
function GetSSSPaiType.Gtetype(cardList)--首先清空数组huaseTable = {};numTable = {};--格式化牌for i,card in ipairs(cardList) dolocal num,huase = GetPokerHasJoker(card)table.insert(huaseTable,huase);table.insert(numTable,num);end--获取是第几墩牌需要判断if(#cardList==3)then --是头道 只判断是三条顺子或者散牌 头道只需要判断是三条还是对子return SSSPaiData[this.GtetSanZhangype(numTable)].imageName;elseif (#cardList==5)thenreturn SSSPaiData[this.GtetWuZhangType(huaseTable,numTable)].imageName;elsereturn SSSPaiData[SSSPaiType.Error].imageName; --数组越界 returnend
end
function GetSSSPaiType.GtetSanZhangype(cards) --判断头道是否三条if cards[1] == cards[2] and cards[1]==cards[3]then --是三条return SSSPaiType.SanTiao;elseif cards[1] == cards[2] or cards[1] == cards[3] or cards[3] == cards[2] then --是对子return SSSPaiType.DuiZi;else --是散牌return SSSPaiType.SanPai;endend
end
--牌大小优先级 五同>同花顺>炸弹>葫芦>同花>顺子>三条>两对>对子>散牌
function GetSSSPaiType.GtetWuZhangType(huaNums,dianNums) --五张牌需要两个参数 花色和点数if(table.ContainsValue(dianNums,0))then --带王 特殊判断table.RemoveValue(dianNums, 0) --首先吧王移除 table.RemoveValue(huaNums, 5) --花色也需要移除if (table.ContainsValue(dianNums,0))then --再次判断是否有王 防止有两个王 --有两个王table.RemoveValue(dianNums, 0) --有两个王再次移除掉王table.RemoveValue(huaNums, 5) --花色也需要移除if(this.isWuTongHasTwoJoker(dianNums))then --两个王 是五同return SSSPaiType.WuTong;elseif(this.isTongHuaHasTwoJoker(huaNums) and this.isShunZi(dianNums) and table.getrepeat(dianNums)==3)then --同花顺return SSSPaiType.TongHuaShun;elseif(this.isTeShuShunZiHasTwoJoker(dianNums) and this.isTongHuaHasTwoJoker(dianNums)) then --特殊同花顺return SSSPaiType.ShunZi;elseif(this.isZhaDanHasTwoJoker(dianNums))then --是炸弹return SSSPaiType.ZhaDan;elseif(this.isTongHuaHasTwoJoker(dianNums))then --同花return SSSPaiType.TongHua;elseif(this.isShunZi(dianNums))then --顺子return SSSPaiType.ShunZi;elseif(this.isTeShuShunZiHasTwoJoker(dianNums))then --特殊顺子return SSSPaiType.ShunZi;elsereturn SSSPaiType.SanTiao; --有两个王 最次也是个三条 不能是葫芦endelse --只有一个王if(this.isWuTongHasOneJoker(dianNums))then --一个王 是五同return SSSPaiType.WuTong;elseif (this.isTongHuaHasOneJoker(huaNums) and this.isShunZi(dianNums) and table.getrepeat(dianNums)==4)then --是同花顺return SSSPaiType.TongHuaShun;elseif(this.isTeShuShunZiHasOneJoker(dianNums)and this.isTongHuaHasOneJoker(huaNums))then --特殊同花顺return SSSPaiType.TongHuaShun;elseif(this.isZhaDanHasOneJoker(dianNums))then --是炸弹return SSSPaiType.ZhaDan; elseif(this.isHuLuHasOneJoker(dianNums))then --是葫芦return SSSPaiType.HuLu; elseif(this.isTongHuaHasOneJoker(huaNums) and not this.isShunZi(dianNums))then --是同花 但不是顺子return SSSPaiType.TongHua;elseif(this.isShunZi(dianNums) and not this.isTongHuaHasOneJoker(huaNums) and table.getrepeat(dianNums)==4)then --是顺子 但不同花return SSSPaiType.ShunZi;elseif(this.isTeShuShunZiHasOneJoker(dianNums)and not this.isTongHuaHasOneJoker(huaNums))then --特殊顺子 但不是同花return SSSPaiType.ShunZi;elseif(this.isSnaTiaoHasOneJoker(dianNums))then --是三条return SSSPaiType.SanTiao; elseif(this.isLiangDuiHasOneJoker(dianNums))then --是两对return SSSPaiType.LiangDui; elsereturn SSSPaiType.DuiZi; --有一个王 最低也是个对子endendelse --不带王 直接判断if(this.isWuTong(dianNums))then --是五同return SSSPaiType.WuTong;elseif(this.isShunZi(dianNums) and this.isTongHua(huaNums))then --是同花顺return SSSPaiType.TongHuaShun;elseif(this.isTeShuShunZi(dianNums) and this.isTongHua(huaNums))then --特殊同花顺return SSSPaiType.ShunZi;elseif(this.isZhaDan(dianNums))then --炸弹return SSSPaiType.ZhaDan;elseif(this.isHuLu(dianNums)) then --是葫芦return SSSPaiType.HuLu;elseif(this.isTongHua(huaNums))then --是同花return SSSPaiType.TongHua;elseif(this.isShunZi(dianNums) and table.getrepeat(dianNums)==5)then --只有连续的数才是顺子 不能有重复的 return SSSPaiType.ShunZi;elseif(this.isTeShuShunZi(dianNums))then --12345也是顺子return SSSPaiType.ShunZi;elseif(this.isSanTiao(dianNums))then --是三条return SSSPaiType.SanTiao;elseif(this.isLiangDui(dianNums))then --是两对return SSSPaiType.LiangDui;elseif(this.isDuiZi(dianNums))then --不对子return SSSPaiType.DuiZi;elsereturn SSSPaiType.SanPai;endendend
--判断是否顺子 带王
function GetSSSPaiType.isShunZi(paiNums)local n = #paiNums--计算0的数量local joker = 0for i=1,n doif paiNums[i] == 0 thenjoker = joker + 1endend--排序local sortt = function(a, b)return a < bendtable.sort(paiNums,sortt)local pre = paiNums[1]--计算总的补充数量local x = 0for i=2,n dolocal tx = paiNums[i] - prex = x + tx - 1pre = paiNums[i]end--如果x比0的数量少,那么可以将数列补充成连续的if x <= joker then --是顺子return true;else--不是顺子return false;end
end
--12345也是顺子 特殊判断
function GetSSSPaiType.isTeShuShunZi(paiNums)local teshu = {2,3,4,5,14};table.sort(paiNums)if(table.isEquation(teshu,paiNums))thenreturn true;elsereturn false;end
end
--是否同花
function GetSSSPaiType.isTongHua(huaNums)if(huaNums[1]==huaNums[2] and huaNums[1]==huaNums[3] and huaNums[1]==huaNums[3] and huaNums[1]==huaNums[4] and huaNums[1]==huaNums[5]) thenreturn true;elsereturn false;end
end
--是否五同
function GetSSSPaiType.isWuTong(paiNums)if(paiNums[1]==paiNums[2] and paiNums[1]==paiNums[3] and paiNums[1]==paiNums[3] and paiNums[1]==paiNums[4] and paiNums[1]==paiNums[5]) thenreturn true;elsereturn false;endreturn false;
end
--判断是否葫芦
function GetSSSPaiType.isHuLu(paiNums)if paiNums[1] == paiNums[2] and paiNums[1] == paiNums[3] thenif paiNums[4] == paiNums[5] thenreturn trueendendif paiNums[3] == paiNums[4] and paiNums[3] == paiNums[5] thenif paiNums[1] == paiNums[2] thenreturn trueendendreturn false
end
--判断是否三条
function GetSSSPaiType.isSanTiao(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2]and paiNums[2]==paiNums[3])then return true;elseif(paiNums[2]==paiNums[3]and paiNums[3]==paiNums[4])then return true;elseif(paiNums[3]==paiNums[4]and paiNums[4]==paiNums[5])then return true;elsereturn falseend
end
--判断是否炸弹
function GetSSSPaiType.isZhaDan(paiNums)table.sort(paiNums) --避免浪费性能 排序后单牌只会在1或者5if paiNums[1] == paiNums[2] and paiNums[1] == paiNums[3] and paiNums[1] == paiNums[4] thenreturn trueelseif paiNums[2] == paiNums[3] and paiNums[2] == paiNums[4] and paiNums[2] == paiNums[5] thenreturn trueelsereturn falseend
end
--判断是否两对
function GetSSSPaiType.isLiangDui(paiNums)table.sort(paiNums) --避免浪费性能 排序后单牌只会在1 3 5if paiNums[1] == paiNums[2] and paiNums[4] == paiNums[5] thenreturn trueelseif paiNums[2] == paiNums[3] and paiNums[4] == paiNums[5] thenreturn trueelseif paiNums[1] == paiNums[2] and paiNums[2] == paiNums[3] thenreturn trueelsereturn falseend
end
--判断是否是对子 没有王
function GetSSSPaiType.isDuiZi(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2] or paiNums[2]==paiNums[3] or paiNums[3]==paiNums[4] or paiNums[4]==paiNums[5])then return trueelsereturn falseend
end
-------------------------有一个王判断-------------------------
--判断是否五同 有一个王
function GetSSSPaiType.isWuTongHasOneJoker(paiNums)if (paiNums[1]==paiNums[2] and paiNums[1]==paiNums[3] and paiNums[1]==paiNums[4])thenreturn trueelsereturn falseend
end
--判断是否同花 有一个王
function GetSSSPaiType.isTongHuaHasOneJoker(huaNums)if(huaNums[1]==huaNums[2] and huaNums[1]==huaNums[3] and huaNums[1]==huaNums[4])thenreturn trueelsereturn falseend
end
--判断是否特殊顺子 有一个王 就是和王能组成A2345的顺子
function GetSSSPaiType.isTeShuShunZiHasOneJoker(paiNums)table.sort(paiNums) --首先吧自己的手牌格式化local teshu1 = {2,3,4,5};local teshu2 = {3,4,5,14};local teshu3 = {2,4,5,14};local teshu4 = {2,3,5,14};local teshu5 = {2,3,4,14};if(table.isEquation(teshu1,paiNums) or table.isEquation(teshu2,paiNums) or table.isEquation(teshu3,paiNums) or table.isEquation(teshu4,paiNums) or table.isEquation(teshu5,paiNums))thenreturn true;elsereturn false;end
end
--判断是否是炸弹 有一个王
function GetSSSPaiType.isZhaDanHasOneJoker(paiNums)table.sort(paiNums) --格式化牌 让散牌在1或者4if(paiNums[1]==paiNums[2] and paiNums[1]==paiNums[3])then return true;elseif(paiNums[2]==paiNums[3] and paiNums[2]==paiNums[4])then return true;elsereturn false;end
end
--判断是否是葫芦 有一个王
function GetSSSPaiType.isHuLuHasOneJoker(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2] and paiNums[3] == paiNums[4])then return true;elsereturn false;end
end
--判断是否三条 有一个王
function GetSSSPaiType.isSnaTiaoHasOneJoker(paiNums)table.sort(paiNums)if paiNums[1] == paiNums[2] or paiNums[2] == paiNums[3] or paiNums[3]==paiNums[4] thenreturn trueelsereturn falseend
end
--判断是否两对 有一个王
function GetSSSPaiType.isLiangDuiHasOneJoker(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2] or paiNums[2]==paiNums[3] or paiNums[3]==paiNums[4])then return trueelsereturn falseend
end
-------------------------有两个王判断-------------------------
--判断是否五同
function GetSSSPaiType.isWuTongHasTwoJoker(paiNums)if(paiNums[1] == paiNums[2] and paiNums[1] == paiNums[3])then return true;elsereturn false;end
end
--判断是否同花
function GetSSSPaiType.isTongHuaHasTwoJoker(huaNums)if(huaNums[1] == huaNums[2] and huaNums[1] == huaNums[3])then return true;elsereturn false;end
end
--判断是否炸弹
function GetSSSPaiType.isZhaDanHasTwoJoker(paiNums)table.sort(paiNums)if(paiNums[1] == paiNums[2] or paiNums[2] == paiNums[3])then return true;elsereturn false;end
end
--特殊顺子 就是和王能组成A2345的顺子
function GetSSSPaiType.isTeShuShunZiHasTwoJoker(paiNums)table.sort(paiNums)local teshu1 = {2,3,14};local teshu2 = {2,4,14};local teshu3 = {2,5,14};local teshu4 = {3,4,14};local teshu5 = {3,5,14};local teshu6 = {2,3,4};local teshu7 = {2,3,5};local teshu8 = {2,4,5};local teshu9 = {3,4,5};if(table.isEquation(teshu1,paiNums) or table.isEquation(teshu2,paiNums) or table.isEquation(teshu3,paiNums) or table.isEquation(teshu4,paiNums) or table.isEquation(teshu5,paiNums) or table.isEquation(teshu6,paiNums) or table.isEquation(teshu7,paiNums) or table.isEquation(teshu8,paiNums) or table.isEquation(teshu9,paiNums))thenreturn true;elsereturn false;end
end
使用时仅需调用GetSSSPaiType.Gtetype()即可,牌类型如下:
用到的牌型枚举:
SSSPaiData = {};
SSSPaiData[SSSPaiType.SanPai] = {typeName = "散牌",imageName = "sanpai"};
SSSPaiData[SSSPaiType.DuiZi] = {typeName = "对子",imageName = "duizi"};
SSSPaiData[SSSPaiType.LiangDui] = {typeName = "两对",imageName = "liangdui"};
SSSPaiData[SSSPaiType.SanTiao] = {typeName = "三条",imageName = "santiao"};
SSSPaiData[SSSPaiType.ShunZi] = {typeName = "顺子",imageName = "shunzi"};
SSSPaiData[SSSPaiType.TongHua] = {typeName = "同花",imageName = "tonghua"};
SSSPaiData[SSSPaiType.HuLu] = {typeName = "葫芦",imageName = "hulu"};
SSSPaiData[SSSPaiType.ZhaDan] = {typeName = "炸弹",imageName = "zhadan"};
SSSPaiData[SSSPaiType.TongHuaShun] = {typeName = "同花顺",imageName = "tonghuashun"};
SSSPaiData[SSSPaiType.WuTong] = {typeName = "五同",imageName = "tiezhi"};
SSSPaiData[SSSPaiType.Error] = {typeName = "错误",imageName = "error"};
用到的公共方法:可以放本类,也可以放全局,个人认为放全局会方便一点,这样其他地方也可以使用全局进行调用
--切割牌 带王
function GetPokerHasJoker(pkId)local sets = string.split(pkId, "_");local color = tonumber(sets[1]);local num = tonumber(sets[2]);if(num == 1) thennum = 14;endif(color == 5)then --如果是王 就吧点数当成0num = 0;endreturn num, color;
end--判断value是否存在
--字典/数组
function table.ContainsValue(tb, val)if(type(tb) == "table") thenfor k, v in pairs(tb) doif equals(v, val) thenreturn true;endendelsereturn equals(tb, val);endreturn false;
end--删除字典中值
function table.RemoveValue(tb, val)for k, v in pairs(tb) doif(v == val) thentable.remove(tb, k);return;endend
end--判断两个数组是否相等
function table.isEquation(tb1,tb2)if(#tb1~=#tb2)thenreturn false;endfor i,v in pairs(tb1) doif tb1[i] ~= tb2[i]thenreturn false;endendreturn true;
end--检查表内相同元素个数
function table.getrepeat(t)local check = {} local n = {}for key, value in pairs(t) doif not check[value] thenn[key] = valuecheck[value] = valueendendreturn #n;
end
写在后面:方法是临时拼凑,可能会有bug,我会持续修复,直至修复完美!!
相关文章:
十三水中各种牌型判断LUA版
近期回归程序行业,由于业务需求需要做十三水游戏,什么是十三水就不在多讲,下面是判断十三水牌型的方法(带大小王) GetSSSPaiType {}; local this GetSSSPaiType; local huaseTable {}; local numTable {}; functi…...
2023.10.19 关于设计模式 —— 单例模式
目录 引言 单例模式 饿汉模式 懒汉模式 懒汉模式线程安全问题 分析原因 引言 设计模式为编写代码的 约定 和 规范 阅读下面文章前建议点击下方链接明白 对象 和 类对象 对象和类对象 单例模式 单个实例(对象)在某些场景中有特定的类,…...
4个鲜为人知的Python迭代过滤函数
在Python中,迭代器可以帮助你编写更多Pythonic的代码,并在处理长序列时提高效率,内置的itertools模块提供了几个有用的函数来创建迭代器。 当你只需要遍历迭代器、检索序列中的元素并对其进行处理,而无需将它们存储在内存中时&am…...
使用logger.error(“自定义错误信息描述“,e)将错误信息输出到日志文件上
之前一直用e.getMessage()来获取错误信息 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController public class ClassF…...
音乐的数字未来:虚拟演唱会与TikTok的巅峰融合
在数字时代,音乐产业正在经历着革命性的变革。虚拟演唱会与TikTok的融合正引领着音乐的数字未来,为艺术家、粉丝和创作者带来了前所未有的互动性和娱乐体验。本文将深入探讨这一巅峰融合,以揭示音乐产业的新前景。 虚拟演唱会的崛起 虚拟演唱…...
基于图像识别的跌倒检测算法 计算机竞赛
前言 🔥 优质竞赛项目系列,今天要分享的是 基于图像识别的跌倒检测算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/…...
NSS [SWPUCTF 2021 新生赛]PseudoProtocols
NSS [SWPUCTF 2021 新生赛]PseudoProtocols 先看题目,题目要求我们先找到hint.php。 看这个get请求头,我们先用php://filter协议读一波 得到提示,让我们前往/test2222222222222.php 源码如下 <?php ini_set("max_execution_time&qu…...
字节码进阶之JVM Attach API详解
字节码进阶之JVM Attach API详解 文章目录 字节码进阶之JVM Attach API详解附加到虚拟机加载代理和获取信息分离虚拟机 使用Attach API的基本步骤1. **获取虚拟机实例**:2. **附加到虚拟机**:3. **加载代理或获取信息**4. **从虚拟机分离**:…...
Kubernetes 部署 kubeflow1.6.1
前言 安装前请注意捋清楚版本关系,如kubeflow版本对应的K8S版本及其相关工具版本等等 我们此处使用的是是kubeflow-1.6.1和K8s-v1.22.8 单机部署 部署K8S 初始化Linux 1.关闭selinux setenforce 0 && sed -i "s/SELINUXenforcing/SELINUXdisable…...
设计模式:建造者模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
上一篇《策略模式》 下一篇《适配器模式》 简介: 建造者模式,它是一种对象构建模式,它提供了一种构建对象的最佳方式。这种模式适用于当对象的构建过程需要涉及到多个部分ÿ…...
Maxon Cinema 4D 2024:打造独一无二的视觉效果 模拟模块大更新
在视觉效果和3D建模领域,Maxon的Cinema 4D一直以其卓越的性能和创新的功能引领着时代潮流。今天,我们很高兴地宣布推出最新版本——Maxon Cinema 4D 2024(C4D 2024),它将再次提升行业标准,为设计师提供更强…...
16.2 ARP 主机探测技术
ARP (Address Resolution Protocol,地址解析协议),是一种用于将 IP 地址转换为物理地址(MAC地址)的协议。它在 TCP/IP 协议栈中处于链路层,为了在局域网中能够正确传输数据包而设计,…...
三级等保-linux服务器三权分立设置
安全问题 安全控制点 风险分析 风险等级 标准要求 加固建议 服务器未严格按照系统管理员权限、审计管理员权限、安全管理员权限进行分配管理员账户,未实现管理员用户的最小权限划分。 访问控制 可能存在管理员越权操作的风险 中 d)应授予管理用户所需的最…...
抓取网页的含义和URL基本构成
抓取网页是指通过爬虫程序从互联网上获取网页的内容和数据。抓取网页是爬虫的核心功能之一,通过抓取网页,可以获取到网页中的文本、图片、链接等信息,用于后续的数据分析、挖掘和应用。 URL(Uniform Resource Locator)…...
计算机毕业设计 机器学习深度学习人工智能
视频参考: 计算机毕业设计项目分享_哔哩哔哩_bilibili 基于深度学习的农业病虫害识别基于SpringBootVue的博客系统基于SpringBootVue的仓库管理系统基于卷积网络的花卉图像识别 毕业设计选题: VX:whbwqq123 基于机器学习的大气数据的污染物pm2.5预测基…...
施密特正交化
相信大家在平时的期末考试中一定少不了对某某向量组执行标准正交化类型的题目。今天我们从这个题目入手,说明这个如何执行施密特正交化,以及为什么要进行正交化。 一、例子 例子:设 a 1 [ 1 2 − 1 ] a_1\begin{bmatrix}1\\2\\-1\end{bmat…...
低代码开发:加速应用开发的利器
目录 一、引言 二、低代码开发的定义和原理 三、低代码开发的关键特性和优势 四、低代码开发的应用场景 五、低代码开发平台的市场现状和发展趋势 六、成功案例分析 七、结论 一、引言 随着信息技术的快速发展,企业对于应用开发的需求也日益增长。传统的应用…...
数据安全发展趋势与密码保护技术研究
随着数据跃升为新型生产要素,数据安全的内涵也从数据本身安全、数据资源安全,发展到数据资产安全三个层面提出了不同的要求,本文就是详细探讨数据安全的这三个层面的安全内容进行分析。 通过对数据安全不同发展阶段的安全需求和保障对象进行研…...
368周赛leetcode
1 2题元素和最小的山形三元组 经典动规 题目内容 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i, j, k) 满足下述全部条件,则认为它是一个 山形三元组 : i < j < k nums[i] < nums[j] 且 nums[k] < nums[j] 请你找出 num…...
Vue 的 nextTick:深入理解异步更新机制
目录 一、前言 二、Vue.js 异步更新机制简述 三、Vue.nextTick原理 四、nextTick 的应用场景 1. 获取更新后的 DOM 元素 2. 在 DOM 更新后执行自定义的回调函数 3. 解决事件监听器中的更新问题 五、Vue.nextTick与其他异步更新方法的比较 六、总结 一、前言 Vue.js&a…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
