只为小站
首页
域名查询
文件下载
登录
C++斗地主(附带简单AI)
用C++写的基于MFC界面的斗地主小游戏源码,内含详细注释,附带了简单的AI出牌规则,放出来供大家参考交流。vs2010编写,vs2015测试可用,理论上vs05及以上都可正常编译运行。 void Judge::MainFlow() { switch(DataCenter::Instance().GetPlayState()) { case EM_LandHolderBorn_PlayState: { //先检查是否已经问完了 //遍历玩家检查是否已经询问过了,如果已经都问过了,则设置叫分最高的为地主 BOOL bAllAsked = TRUE;//是否已经询问完了 vector
& vecPlayer = DataCenter::Instance().GetPlayerList(); for (UINT i = 0; i < vecPlayer.size(); i++) { //统计当前最高分 if (vecPlayer[i].GetLandOwerScore() > m_nCurHighstScore) { m_nCurHighstScore = vecPlayer[i].GetLandOwerScore(); m_pToBeLandOwer = &vecPlayer;[i]; } if (vecPlayer[i].GetLandOwerScore() < 0) { bAllAsked = FALSE; } } //如果已经全部问过了,则设置当前最高分的为地主 if (bAllAsked) { m_pToBeLandOwer->SetLandOwer(TRUE); } //然后根据情况执行询问流程 //如果地主已经产生,则跳入下一阶段 if (NULL != DataCenter::Instance().GetLandOwner()) { m_pCurPlayer = NULL; DataCenter::Instance().SetPlayState(EM_WaitPlayer_PlayState); MainFlow(); return; } //如果当前player为空,设置当前player为地主牌得主 if (m_pCurPlayer == NULL) { m_pCurPlayer = DataCenter::Instance().GetLandOwnerCardHolder(); } //对当前玩家执行地主问询 ASSERT(m_pCurPlayer); m_pCurPlayer->ExcuteCallLandOwer(); } break; case EM_WaitPlayer_PlayState: { //如果游戏已经结束,则执行结束逻辑 BOOL bLandOwerWin = FALSE; if (DataCenter::Instance().IsOver(bLandOwerWin)) { if (bLandOwerWin) { AfxMessageBox(_T("地主赢了!")); } else { AfxMessageBox(_T("佃户赢了!")); } DataCenter::Instance().SetPlayState(EM_WaitToStart_PlayState); //将所有玩家明牌 DataCenter::Instance().ShowAllPlayerCard(); RefreshView(); return; } //如果是出牌阶段而当前player为空,设置当前player为地主,并发予底牌 if (m_pCurPlayer == NULL) { m_pCurPlayer = DataCenter::Instance().GetLandOwner(); DataCenter::Instance().SendOutBottomCard(); RefreshView(); } ASSERT(m_pCurPlayer); m_pCurPlayer->ExcuteCallCardPlay(); } break; } } void Judge::CurPlayerCallScore(int nScore) { if (m_pCurPlayer == NULL) { ASSERT(FALSE); return; } //将玩家选择的分数设置给玩家 m_pCurPlayer->SetLandOwerScore(nScore); //如果当前玩家为空,直接返回 if(m_pCurPlayer == NULL) { return; } if (nScore == 3) { //如果玩家叫了三分,直接设为地主 m_pCurPlayer->SetLandOwer(TRUE); } else { //玩家叫的不是三分,则记下玩家叫的分数 m_pCurPlayer->SetLandOwerScore(nScore); } if (nScore == 0) { CString strWord; strWord.Format(_T("不叫")); m_pCurPlayer->Say(strWord); } else { CString strWord; strWord.Format(_T("%d分"), nScore); m_pCurPlayer->Say(strWord); } //玩家叫分后隐藏叫地主按钮 Judge::Instance().ShowCallLandOwerBtn(FALSE); //切换到下一个玩家,流程继续 SwitchToNextPlayer(); MainFlow(); }
2023-05-16 22:01:18
226KB
MFC
windows
斗地主
1
DouZero_For_HappyDouDiZhu:基于DouZero定制AI实战欢乐斗地主
DouZero_For_Happy_DouDiZhu: 将DouZero用于欢乐斗地主实战 本项目基于 环境配置请移步项目DouZero 模型默认为WP,更换模型请修改start.py中的模型路径 运行main.py即可 SL (baselines/sl/): 基于人类数据进行深度学习的预训练模型 DouZero-ADP (baselines/douzero_ADP/): 以平均分数差异(Average Difference Points, ADP)为目标训练的Douzero智能体 DouZero-WP (baselines/douzero_WP/): 以胜率(Winning Percentage, WP)为目标训练的Douzero智能体 说明 欢乐斗地主窗口模式最大化运行,屏幕分辨率1920x1080。由于设计像素级操作,运行出错请检查截图区域坐标(位于MyPyQT_Form类中的__i
2023-04-29 13:15:55
16.22MB
Python
1
Android游戏源码支持网络对战和本地对战的斗地主
掌中游斗地主(完整版),集合了单机斗地主、网络斗地主、癞子斗地主等,有史以来最有参考价值的源码,虽然运行慢了一点但是功能正常,用的是纯java写的。支持单机和网络对战。分层太多了,jar包也一大堆大体看了一下貌似核心功能有封装。有需要的自己仔细研究一下吧。研究出结果别忘了回来评个论
2023-03-24 22:46:31
26.01MB
android源码
1
斗地主核心算法源码讲解.rar
斗地主核心算法源码讲解 1、定义构造一张牌 2、如何判断一手牌的类型(单,对子,三不带,三带一,四代二等) 3、如何比较两手牌的大小 4、对牌进行排序 5、洗牌和发牌
2023-03-15 18:18:32
173KB
java
1
DouDiZhu1:斗地主小程序
你好,世界 你好,世界新项目模板。
2023-03-14 23:25:56
12.92MB
JavaScript
1
易语言斗地主算法模块
易语言斗地主算法模块源码,斗地主算法模块,GetCardType,GetCardValue,GetCardColor,RandCardList,SortCardList,RemoveCardList,GetCardLogicValue,CompareCard,MakeCardData,AnalysebCardData,AnalysebDistributing
2023-03-04 17:48:17
8KB
易语言斗地主算法模块源码
斗地主算法模块
GetCardType
GetCardV
1
易语言斗地主算法模块源码-易语言
易语言斗地主算法模块源码
2023-03-04 17:44:08
6KB
模块控件源码
1
java斗地主发牌小程序
java斗地主发牌小程序 牌的生成 随机洗牌 发牌 输出显示 代码只有几十行而已
2023-02-26 19:19:03
27KB
java
小程序
1
javascript+css+html开发的斗地主游戏
刚开发完一个javascript+css+html开发的单机牌斗地主游戏半成品,,嘻嘻。。电脑自动出牌还不完整。。。过段时间开发网络对战版的。。本程序用于商用,请先通知我经我同意后再使用。否则本人保留相关法律权力。
2023-02-26 18:49:03
831KB
斗地主游戏
javascript
css
html
1
doudizhu:Qt联机斗地主
项目名称: 基于Qt+mysql的联机斗地主 服务端特点: { 独立的注册服务与游戏服务 { 两个服务可以分开部署,互不影响 } 避免多余连接,限制长连接 { 注册时不论成败,服务端都主动断开连接(因为注册后不一定马上进入游戏) 游戏服务器端只保留登陆成功的玩家的套接字 游戏服务端有在线人数限制 } 准确丰富的牌型 { 加入了以A开头的顺子和连对 加入了以2开头的顺子和连对 } 能处理玩家断线 { 若未开始游戏,同一房间的其他玩家会看到那个玩家的头像消失了 若已开始游戏,则敌对势力获胜 } 出牌时间限制 服务端监视界面提供了类似于"命令行"的详细的日志输出 } 客户端特点: { 有效处理快速连续点击按钮所导致的异常情况 出牌时间限制 提供了游戏时的匿名聊天功能 提供了一键安装包( 针对windows的安装包 ) 提供了单击AI(带有各种音效和智能提示) } 配置文件config.txt解说
2023-01-29 14:26:28
70.47MB
C++
1
个人信息
点我去登录
购买积分
下载历史
恢复订单
热门下载
Microsoft Visual C++ 2015-2019 运行库合集,包含32位64位
PowerBI视觉对象共计271组,更新日期2021.01.20日.zip
EEupdate_5.35.12.0 win10下修改intel网卡mac
matlab机器人工具箱实现机械臂直线轨迹&圆弧轨迹规划
随机森林用于分类matlab代码
毕业设计:基于Python的网络爬虫及数据处理(智联招聘)
基于STM32的FFT频谱分析+波形识别
计算机专业实习日记+实习周记+实习总结
Spring相关的外文文献和翻译(含出处).zip
token登录器.rar
非线性本构关系在ABAQUS中的实现.pdf
算法设计(中文版)和习题解答 Jon_Kleinberg著,张立昂译
PLECS中文手册.pdf
芯片验证漫游指南以及源代码.zip
【SystemVerilog】路科验证V2学习笔记(全600页).pdf
最新下载
GimConverter
cplex_studio128.linux-x86-64.bin
IP175G五口交换机 自己画的原理图实测可用
雷达系统导论 第3版 [(美)斯科尼克 著] 2014年版
深圳租房历史成交数据
嵌入式系统Linux内核开发实战指南(ARM平台)书与光盘3
嵌入式系统Linux内核开发实战指南(ARM平台)书与光盘1
嵌入式系统Linux内核开发实战指南(ARM平台)书与光盘2
AD22软件常用配置简单好用
WIN10外星人主题
其他资源
顶级压缩软件paq8px
KUKA机器人EthernetKRL安装教程
d3.js 绘制雷达图
C#交互式绘图代码
基于STM32的烟雾传感器(MQ-2)数据监测
bat批处理获取正在使用的网卡名称
基于图片信息的相机内参获取
《C#课程设计案例精编》12个项目.zip
多机调度(贪心算法实现、含报告)
C# VS2010下前后台交互调用百度地图API 实现标注、测距、画轨迹、画圆
IEC61850-9-2译文
学习-源码
GC8548说明书V1.1.pdf
专访BruceDouglass,谈嵌入式经验
密码学课程设计DES加解密实现
轻松读懂无线充电产业链
ctrt5000红外寻迹
校园网组网设计完成版
IEC 60068-2-5-2018
基于VISSIM仿真软件的停车场自动生成及评估系统设计 (1)
LitJson.dll C# 与 unity 可用的Json处理插件
c++书店管理系统课设
LEX实现一个C语言子集的词法分析器