ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: aoe1981

[原创] 纸牌游戏十点半之Excel版

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-31 10:15 | 显示全部楼层
调用处代码改为:
  1.                         If wj(wj2(i))(j, 2) <> "" Then
  2.                             hs = wj(wj2(i))(j, 2)
  3.                             hsz(wj2(i)) = huasezhi(hs)
  4.                             If hsz(wj2(i)) > maxhsz(wj2(i)) Then maxhsz(wj2(i)) = hsz(wj2(i)) '找出各玩家单张最大花色值
  5.                         End If
复制代码
此时调用时只需要一个参数,也比原来方便了许多……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-31 10:16 | 显示全部楼层
本帖最后由 aoe1981 于 2014-8-31 14:19 编辑

  以下算是1.1版吧,只是优化版,不算是功能完善版。
   十点半(1.1)香川改进.rar (78.71 KB, 下载次数: 11)
  已根据香川23楼建议更新附件。

TA的精华主题

TA的得分主题

发表于 2014-8-31 12:55 | 显示全部楼层
aoe1981 发表于 2014-8-31 10:15
调用处代码改为:此时调用时只需要一个参数,也比原来方便了许多……

花色比较问题已经简化,不需要单独写一个自定义函数了。

在 Public Sub tanpai(yjzz1)
中增加变量s
Dim i%, j%, dizhi$, dizhi1$, dizhi2$, dizhi3$, wj1, ds, s$
s = "升方K方Q方J方A方2方3方4方5方6方7方8方9方0梅K梅Q梅J梅A梅2梅3梅4梅5梅6梅7梅8梅9梅0红K红Q红J红A红2红3红4红5红6红7红8红9红0桃K桃Q桃J桃A桃2桃3桃4桃5桃6桃7桃8桃9桃0二王大王"

…………

然后For循环中改为:

For j = 1 To 5 '其实摊牌时最多有4张牌
    hs = wj(wj2(i))(j, 2)
    If hs <> "" Then
        hsz(wj2(i)) = InStr(s, hs)
        If hsz(wj2(i)) > maxhsz(wj2(i)) Then maxhsz(wj2(i)) = hsz(wj2(i)) '找出各玩家单张最大花色值
    End If
Next j

…………
过程中,应该把 hs = wj(wj2(i))(j, 2)提到前面,这样使用变量hs的效率高。


点评

为啥不是数值?1到54赋值不是方便很多?  发表于 2014-9-3 20:43

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-31 14:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2014-8-31 12:55
花色比较问题已经简化,不需要单独写一个自定义函数了。

在 Public Sub tanpai(yjzz1)

22楼附件按您的建议已修改。
“过程中,应该把 hs = wj(wj2(i))(j, 2)提到前面,这样使用变量hs的效率高。”关于此句,我只想到的是:在判断里头时,hs的赋值计算次数不是少一些吗?
有点不明白……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-2 21:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 aoe1981 于 2014-9-3 13:00 编辑

  喜讯、喜讯,十点半2.0版终于开发成功,现在发布,现在发布!!!
   十点半(2.0).rar (90.25 KB, 下载次数: 41)
  36楼错误已改正,附件已更新!(2014-9-2 23点)
  39楼错误已更正,附件已更新!(2014-9-3 13点)



TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-2 22:00 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-2 22:03 | 显示全部楼层
  同时,2.0版经过反复测试,修正了在遇到大量极端情况会使代码运行结果出现不合理的情况时的错误,比如:关于什么时候开始摊牌的判断,比如:有一方胜出时原来不要牌的会忽然要牌的错误、比如:最后一张牌憋破后,仍计算在摊牌玩家之内的现象……
  本版本附件较为可靠,仍有待进一步检验!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-2 22:06 | 显示全部楼层
  顺便说一下,本附件十点半游戏的设计初衷各实现效果可以理解为:耍赖的庄家大战各玩家!!!
  呵呵……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-2 22:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  还需要补充一点的是:庄家出现自主选择是否要牌的情况并不是经常出现,为防止庄家“做弊”,在小于等于7点时,不会弹出自主选择要牌的提示框,由系统自动要牌!正是基于这一点,所谓庄家“耍赖”,也是在不违背随机性的大前提下进行的“剩余牌分析”,即使如此,并不能排除庄家要牌时的风险……因为,这种分析并不会开后门,直接告诉“庄家”下一张牌是多少点……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-2 22:13 | 显示全部楼层
  至此为止,只剩下规则16:“摊牌后若剩余牌数还至少够发牌一轮的,应当继续发牌,直至牌发完或不够新一轮底牌时结束。”没有实现……
  这个预设为3.0版附件要突破的关口吧……
  不过,现在我觉得,已经不影响可玩性了……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-19 20:14 , Processed in 0.039045 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表