前言

去年下半年做了一个项目,是扑克类的网络游戏。原计划包括:拱猪、斗地主、梭哈、红五三打一等。但是最重项目流产,只完成了拱猪和红五三打一。去年在动工的时候,网上的相关资料很少(一般都是很简单的比较大小游戏),尤其是win32下以MFC实现更加是凤毛麟角。我主要参考了一篇老外的文章,此文主要阐述了如何利用windows自带的cards.dll绘制各色扑克牌,以及示范程序,我会在收藏中贴出来。想找到联众或者中游的源代码作参考自然是不可能的。故而其设计还是我自己实现的。目前项目流产,不愿意让其躺在硬盘里睡大觉,愿意将一些所得贴出来与大家共享,也算作一种敝帚自珍吧。

概述

游戏分为网络层应用程网络层由同学Kiang完成并且封装,应用层由笔者完成。在笔者开发应用层的时候,只需要知道网络层有如下特性:
1、  诸个游戏者每人运行一个程序实例于各自的计算机上。此处将每个实例定义为一个“”。
2、  诸个端中有一个为“主机”,“主机”直接负责与游戏服务器联系,即:从运营商的服务器上下载各个游戏者的积分等信息;并且负责将消息分发至其他的玩家。诸个端中,与“主机”相对应的,定义为“从机”。
3、  网络层提供的服务:将本端应用层发来的消息分发到其他所有的端;将其他端发送来的消息正确发送到本端应用层。并且保证正确性时序性
由上面网络层的特性,设计应用层原理应当如下:
1、  定义每个参加游戏的人为“玩家”。每个玩家在每个端上都有一个抽象的映射,即一个Player。若一个游戏有N人(N个玩家)参与,则在每个端上,共有N个Player。某端N个玩家中有一个是本地的(local,其他N-1个是远程的(remote)。所谓本地(local)即,接受来自GUI的消息并且向其他端相对同一个玩家的Player(remote)发出消息。而remote Player则不接受来自GUI的消息,接受来自远端Player(local)的消息。故而,藉remote-local结构,应用层通过网络消息同步各个端某个玩家对应的所有Player,保持各段数据的一致性
2、  剥离游戏和界面,即剥离GameView两个类。Game类负责以虚函数重载的方法根据各个不同的游戏,设置不同的规则。有如下几个基本功能分别需要由虚函数实现:
l         大小比较规则
但张牌或者组合牌的大小比较。
l         出牌合法判定规则
若出牌不是本规则允许的组合,则被退回。
l         出牌次序判定
每一局、每一轮、每一副牌谁先走牌,谁后走牌。

扑克游戏架构及其实现(一)相关推荐

  1. amd显卡风扇调节_和AMD首席游戏架构师Frank Azor聊聊RX 6000系列显卡那些事儿

    点击上方"蓝字",发现更多精彩. 如果说不少公司把2020年的经营目标设定为"活下去",那么AMD不但活的挺好,还收获颇丰:从移动端处理器到桌面级处理器,再到近 ...

  2. java输入数量扑克牌排序_Java扑克游戏(多人多牌数比较游戏)的实现

    具体实现步骤如下: 实现扑克Card类,用于储存扑克牌,1-13代表点数,4-1代表花色(黑桃,红桃,梅花,分块) 实现扑克列表CardList类,用于实现生成一副牌,洗牌,发牌的功能 实现玩家Pla ...

  3. 45岁码农用不到2年时间撸出100款扑克游戏

    前言 扑克的玩法非常多,常见的就有斗地主.跑得快.五十K.锄大地.梭哈.十点半.二十一点.打千分.升级.拖拉机.双扣.保皇.斗牛.挖坑等等.在国内的不同地方,同类游戏的玩法也有不同讲究.粗略估计,国内 ...

  4. 比特币base58源码解析_中本聪源码早期版本流出:区块链原名时间链,比特币内置虚拟扑克游戏...

    本文来自 Bitcoin.com,原文作者:Jamie Redman Odaily 星球日报译者 | Moni 本周,一个比特币源代码早期版本浮出水面,立刻引起了加密货币社区的热议.根据"中 ...

  5. 《魔兽世界插件》教程---21点扑克游戏 Blackjack

    1.效果图 因为我是新手,只能做一个非常简单的插件,21点扑克游戏.比较有趣吧,插件也可以做一个游戏?游戏中的游戏! 2.编写魔兽世界插件准备 首先你要一个最新的魔兽世界客户端,我的有26G大小.记得 ...

  6. 扑克游戏的洗牌算法及简单测试

    2019独角兽企业重金招聘Python工程师标准>>> 我在学习<写给大家看的C语言书>这本书时,对书后面附录的一个扑克游戏程序非常感兴趣.源代码在帖子最后. PS:这本 ...

  7. android_Android游戏开发–基本游戏架构

    android 因此,我们启动并运行了我们的Android应用程序,但是您可能想知道哪种类型的应用程序正是游戏. 我会尽力让您了解它. 下图显示了游戏架构. Android手机上的游戏架构 在上面的架 ...

  8. 游戏行业如何上云?阿里云架构师解读四大主流游戏架构

    游戏行业是阿里云最早聚焦的行业之一,近年来游戏行业的变化.云计算产品技术的变化都与日俱进.随着行业业务的变化.技术架构的演进以及阿里云产品的迭代演进,整体的产品技术选型在不同的游戏场景.业务场景也不尽 ...

  9. 21点扑克游戏的出牌策略的研究

    21点是一个非常流行的扑克游戏,规则很简单,计算手中的牌,如果超过21点则输,不到21点则比谁的牌大.其中JQK都当成10点计算,A可以计算为1点或11点. 在澳门的娱乐场里面,21点的规则如下,庄家 ...

最新文章

  1. mysql索引commit卡死_mysql 5.6 read-committed隔离级别下并发插入唯一索引导致死锁一例...
  2. Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)
  3. 在java中构建高效的结果缓存
  4. LNMP实现服务器轮询负载均衡
  5. [Unity] Animator 播放 Mixamo 动画卡在第一帧的解决办法:勾选 Loop Time
  6. linux服务器开发板,linuxnfs服务器的建立,虚拟机、开发板间的通信
  7. 推荐算法之用户推荐(UserCF)和物品推荐(ItemCF)对比
  8. wifi显示但是没有网络连接到服务器是怎么回事,wifi连接后显示网络连接不可用怎么办?...
  9. WPF ListView控件的简单使用
  10. 怎样快速打出初中常用的化学反应方程式
  11. ubuntu上打开md文件_Ubuntu 使用教程.md
  12. 调用企查查上的接口,实现通过公司名称查询公司列表
  13. ubuntu 我喜欢的快捷键
  14. matlab 直和,MATLAB求空间sdm的直接和间接效应
  15. 【JokerのZYNQ7020】UART。
  16. 金融课第二次测试笔记
  17. Flex 是什么? flex和flash是什么关系?(转)
  18. 【GXOI / GZOI2019】【树链剖分】【线段树】旧词
  19. 自己动手做个小游戏(1)
  20. 精简模式 大师 易水之畔 自动刷冒险任务 刷金币

热门文章

  1. 上门同城按摩家政茶艺系统
  2. 摄影:相机的白平衡怎么用?
  3. 《思科数据中心I/O整合》一2.13 VEB:虚拟以太网桥接
  4. 复杂的数据类型(数组,指针)
  5. 淘宝直播系统开发技术干货:高清、低延时的实时视频直播技术解密
  6. prometheus的TCP alloc取值
  7. 2022-05-07 designs_集群扩缩容设计方案
  8. Openshift4.x -- 基于裸机(Bare Metal) UPI方式的集群安装(参考)
  9. @ConditionalOnProperty 和@Conditional注解作用
  10. 很久很久以前纸牌玩法