# LandLords 单人卡牌对战游戏 **Repository Path**: xon99/land-lords ## Basic Information - **Project Name**: LandLords 单人卡牌对战游戏 - **Description**: 单人卡牌对战游戏项目 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2023-12-18 - **Last Updated**: 2025-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: Landlords, 单人卡牌对战, 人机对战, 智能化机器人思路 ## README # LandLords 单人卡牌对战游戏 ![整个流程GIF](Landlords/images/6.gif) #### 介绍 斗地主项目 斗地主游戏开始时的加载动画,游戏大厅界面,大厅里的按钮及点击后打开其他二级按钮界面,自定义按钮的设置,右上角记录得分框界面,游戏开始时发牌动画及玩家手中牌降序显示,发牌完毕从玩家开始叫地主,机器人由策略类判定下注分数,游戏开始按照出牌的规则循环出牌,机器人由策略类判定出各种类型大小牌压制以及炸弹飞机等动画的处理,游戏结束计算得分弹出得分面板界面并询问玩家是否再来一局。 #### 软件架构 软件架构说明 游戏模块组件开发 1.卡牌模块:分为单张和多张卡牌类,负责扑克牌的花色和点数的存取及随机发牌的处理等; 2.玩家模块:分成玩家类父类及机器人和非机器人子类,主要完成玩家发牌、抢地主、出牌信号的处理及获取牌局各种信息; 3. **策略模块** :分成游戏策略类和出牌类,游戏策略类为出牌的核心模块,涵盖了指定出牌策略、机器人第一次出牌最优牌型、得到比指定牌型大的牌、判断出牌占整体利弊决定是否出牌、找出指定数量的相同点数的牌、根据点数范围找牌、按照指定牌型找牌、以上都是为了出牌规则的制定和机器人智能化判断如何出牌收益最大化。 出牌类主要是分析打出的牌的是否符合规定及牌的类型的分类,以及大小的判断; 4.窗口模块:游戏内各种窗口的设计,如游戏主页面、单张卡牌窗口、自定义按钮、特效动画窗口、倒计时窗口 5.线程模块:主要是机器人抢地主和机器人出牌的处理; 6. **游戏控制模块** :初始化整副扑克牌、游戏按钮组、游戏控制信息、游戏场景和上下文环境,处理玩家抢地主、游戏状态变化、通知出牌、传递出牌数据、玩家放弃出牌,显示特效和闹钟倒计时的处理; #### 效果展示 ![游戏加载](Landlords/images/1%E6%B8%B8%E6%88%8F%E5%8A%A0%E8%BD%BD.png) ![游戏开始页面](Landlords/images/2%E6%B8%B8%E6%88%8F%E5%BC%80%E5%A7%8B%E9%A1%B5%E9%9D%A2.png) ![发牌页面](Landlords/images/3%E5%8F%91%E7%89%8C%E9%A1%B5%E9%9D%A2.png) ![叫地主页面](Landlords/images/4%E5%8F%AB%E5%9C%B0%E4%B8%BB%E9%A1%B5%E9%9D%A2.png) ![选牌出牌](Landlords/images/5%E9%80%89%E7%89%8C%E5%87%BA%E7%89%8C.png) ![炸弹](Landlords/images/6%E5%87%BA%E7%89%8C%E7%89%B9%E6%95%88%E6%98%BE%E7%A4%BA.png) ![游戏结束](Landlords/images/7%E7%82%B8%E5%BC%B9.png) ![输入图片说明](Landlords/images/8%E6%B8%B8%E6%88%8F%E7%BB%93%E6%9D%9F.png)