开心斗地主,一款不错的斗地主游戏,经过我的多个月的实践,才肯推荐给大家使用的
2023-06-21 03:00:31 1.39MB 开心斗地主
1
java swing制作的单机斗地主,实现了发牌、出牌、叫牌和一些简单的音效,附上了一些电脑AI出牌跟牌的逻辑。
2023-06-21 02:42:54 11.48MB 源码
1
易语言网络版斗地主 里面有各种斗地主游戏需要的算法 有想做斗地主的大佬们可以用来参考 里面有服务器和客户端 可直接运行三个客户端 服务器 来测试
2023-06-01 20:57:48 1.07MB 斗地主 算法 易语言 服务器
1
该游戏包括以下功能:玩家之间可以进行即时通信;玩家叫牌,然后由服务器确定地主;每一个玩家都可以看到其他另外两个玩家出的牌;出牌按照一定的出牌规则;能够在局域网内三人联网;控制按钮可以设置游戏开始、结束、玩家加入游戏等。 本文设计的游戏的界面采用JDK中的抽象窗口工具集组件AWT及Swing组件实现,不仅具备了经典单机版游戏的一般功能,具有良好的游戏界面,而且还通过Socket编程实现了客户端与服务器端的即时通信,从而实现了多人联网的竞技功能。 经过测试,游戏能正确、稳定的运行,具有一定的可玩性。
2023-05-23 11:05:32 456KB 斗地主游戏源代码-Java
1
用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_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
掌中游斗地主(完整版),集合了单机斗地主、网络斗地主、癞子斗地主等,有史以来最有参考价值的源码,虽然运行慢了一点但是功能正常,用的是纯java写的。支持单机和网络对战。分层太多了,jar包也一大堆大体看了一下貌似核心功能有封装。有需要的自己仔细研究一下吧。研究出结果别忘了回来评个论
2023-03-24 22:46:31 26.01MB android源码
1
斗地主核心算法源码讲解 1、定义构造一张牌 2、如何判断一手牌的类型(单,对子,三不带,三带一,四代二等) 3、如何比较两手牌的大小 4、对牌进行排序 5、洗牌和发牌
2023-03-15 18:18:32 173KB java
1
你好,世界 你好,世界新项目模板。
2023-03-14 23:25:56 12.92MB JavaScript
1
易语言斗地主算法模块源码,斗地主算法模块,GetCardType,GetCardValue,GetCardColor,RandCardList,SortCardList,RemoveCardList,GetCardLogicValue,CompareCard,MakeCardData,AnalysebCardData,AnalysebDistributing
1