【180616】VC++开发的麻将游戏

VC++开发的单机版麻将游戏:
游戏中自己设定的类:
————————————————————————————
1.玩家自身麻将与处理一个类(CWanjia)

玩家牌的种类(手中的牌,打出的牌,抓的新牌,别人打的牌)
玩家的操作(吃、碰、杠,出牌,整理)
别人打的牌判断是否能吃、碰、胡、杠,自身是否能杠、胡

2.桌面牌墙与其处理一个类(CZuoMaj)
牌墙(4个方向)
操作(洗牌,整理发给4个方向的牌,发下一张牌,杠牌(取最后一张))

3.考虑胡牌一个类(返回听牌的牌)(主要递归)(CMajHu)
把玩家手中的牌给这个类处理,返回能胡的牌
操作(考虑七对的算法,考虑小胡(递归剔出3张的组合,如果剩下4张标明可能听牌)。。。。。)
剩下4张牌之后的判断

4.电脑思考(以组合最大效益为依据(3张组合其次二张组合最后一张牌算其最差的一张))

4.1基类(CBasicThink)
给一组牌传进去给类处理,得出要出的牌或者是否能吃、碰、杠
核心属性(3张组合的分数,2张组合的分数(都已最大为主)递归)

4.2电脑算法不同而不同
目前只做了一个考虑自身牌做出判断的算法(CCmpThink)
准备继续做几个详细的算法(把因素考虑多些(如出了的牌,大胡的因素)未完成)(CCleverThink)

——————————————————————————————
游戏的基本运行
——————————————————————————-————
运行前会先洒色子,根据色子与庄家给各玩家初始化手中的牌
1.初始化(根据庄家和色子数给每个人发12张牌)
2.牌墙发牌给庄家(m_nActive活动状态给庄家)
3.根据活动状态玩家是否是出牌状态(m_nState==1):如果是电脑,让其思考最差的一张牌并出牌,如果是人就让其自行选择(相应时间内没出牌就自动出刚抓的新牌(m_nNewPai))
4.根据玩家出的牌判断各玩家的优先级,优先级最大的玩家操作并把活动状态给他,(如果是人就等待其是否操作,时间内没响应就自动弃权)
5.如果有玩家操作了就返回第3步,如果没有玩家操作就进行第6步
6.如果没有玩家对刚出的牌操作就牌墙发牌给下一玩家,再返回第3步。

7.如果有人胡牌就统计分数,如果牌墙剩余的牌不到10张就流局,分数不变,游戏也结束。

源码下载地址:点击下载

备用下载地址:点击下载



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
================================================================================ MICROSOFT 基础类库: GameClient 项目概述 =============================================================================== 应用程序向导已为您创建了此 GameClient 应用程序。此应用程序 不仅介绍了使用 Microsoft 基础类的基本知识, 而且是编写应用程序的起点。 此文件包含组成 GameClient 应用程序的每个文件的内容摘要。 GameClient.vcproj 这是使用“应用程序向导”生成的 VC++ 项目的主项目文件。 它包含有关生成文件的 Visual C++ 版本的信息,以及 有关用“应用程序向导”所选择的平台、配置和 项目功能的信息。 GameClient.h 这是应用程序的主头文件。 它包含其他 项目特定的头文件(包括 Resource.h),并声明 CGameClientApp 应用程序类。 GameClient.cpp 这是包含应用程序 类 CGameClientApp 的主应用程序源文件。 GameClient.rc 这是程序使用的所有 Microsoft Windows 资源 的列表。 它包含存储在 RES 子目录中 的图标、位图和光标。 可直接在 Microsoft Visual C++ 中编辑此文件。 项目资源包含在 2052 中。 res\GameClient.ico 这是一个图标文件,用作应用程序的图标。 此 图标包含在主资源文件 GameClient.rc 中。 res\GameClient.rc2 此文件包含不由 Microsoft Visual C++ 编辑的资源。 应将所有不能由 资源编辑器编辑的资源放在此文件中。 ///////////////////////////////////////////////////////////////////////////// 应用程序向导将创建一个对话框类: GameClientDlg.h、GameClientDlg.cpp - 对话框 这些文件包含 CGameClientDlg 类。 此类定义 应用程序主对话框的行为。 此对话框的模板包含在 GameClient.rc 中,而此文件可以在 Microsoft Visual C++ 中进行编辑。 ///////////////////////////////////////////////////////////////////////////// 其他功能: ActiveX 控件 应用程序支持使用 ActiveX 控件。 ///////////////////////////////////////////////////////////////////////////// 其他标准文件: StdAfx.h、StdAfx.cpp 这些文件用于生成名为 GameClient.pch 的预编译头文件 (PCH) 和名为 StdAfx.obj 的预编译类型文件。 Resource.h 这是标准头文件,它定义新资源 ID。 Microsoft Visual C++ 将读取并更新此文件。 ///////////////////////////////////////////////////////////////////////////// 其他说明: 应用程序向导使用“TODO:” 来指示 应添加或自定义的源代码部分。 如果应用程序在共享 DLL 中使用 MFC,且应用程序使用的语言不是 操作系统的当前语言,则需要从 Microsoft Visual C++ 光盘上 Win\System 目录下将相应的本地化资源 MFC70XXX.DLL 复制到计算机的 system 或 system32 目录下, 并将其重命名为 MFCLOC.DLL。 (“XXX”代表 语言缩写。 例如,MFC70DEU.DLL 包含翻译成 德语的资源。) 如果不这样做,应用程序的某些 UI 元素 将保留为操作系统的语言。 /////////////////////////////////////////////////////////////////////////////

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值