一个扑克牌的程序设计问题
最近在做一个类似于UNO的扑克牌程序,不知道有没有人玩过UNO,游戏规则很简单,就是一个玩家出一张牌,然后下一个玩家,出的牌,要么跟上个玩家出的牌数字相同,要么花色相同,如果都没有的话,就得在牌库里面摸一张牌,然后这些牌里面还有一些特殊功能的牌,譬如改变上一个玩家出的牌得花色或者数字,从而来适应自己的出牌,游戏最后把牌出光的就是胜利者,然后分数越少的排第2,其次少的拍第3.。。。。
我设计的时候一共分成三个类,第一个类是CARD,第二个类是PLAYER,第三个类是GAME,最后一个类是启动程序的MAIN,第一,二个类相信不用我介绍了,第三个GAME类是用来处理一些诸如初始化牌库,初始化玩家数,洗牌,派牌,计分等功能。
在设计的时候我有几个问题:
1,对于牌库,玩家的手牌,还有玩家群,分别用什么容器比较合适?特别对于牌库,有没有一个类似于单向链表的容器,因为我打算用一个随机数来把牌库里的牌分派给玩家,当第一个玩家得到牌之后,继续用这个随机数的话,如果不是单向链表那样,就会出现抽到空元素。
2,对于一些有特殊功能的牌,我是想用多态来实现,但是在实现那牌得功能之前,必须要先判断玩家的牌是否有特殊功能,这一判断的话,就失去了多态的优势,请问如果我想用多态来实现的话,应该怎样实现?
3.请问枚举类的元素可以是整数吗?我想用一个枚举类来装牌得数字,另外一个枚举类装牌得花色,但是装牌的数字的枚举类好像老是不通过编译。
我设计的时候一共分成三个类,第一个类是CARD,第二个类是PLAYER,第三个类是GAME,最后一个类是启动程序的MAIN,第一,二个类相信不用我介绍了,第三个GAME类是用来处理一些诸如初始化牌库,初始化玩家数,洗牌,派牌,计分等功能。
在设计的时候我有几个问题:
1,对于牌库,玩家的手牌,还有玩家群,分别用什么容器比较合适?特别对于牌库,有没有一个类似于单向链表的容器,因为我打算用一个随机数来把牌库里的牌分派给玩家,当第一个玩家得到牌之后,继续用这个随机数的话,如果不是单向链表那样,就会出现抽到空元素。
2,对于一些有特殊功能的牌,我是想用多态来实现,但是在实现那牌得功能之前,必须要先判断玩家的牌是否有特殊功能,这一判断的话,就失去了多态的优势,请问如果我想用多态来实现的话,应该怎样实现?
3.请问枚举类的元素可以是整数吗?我想用一个枚举类来装牌得数字,另外一个枚举类装牌得花色,但是装牌的数字的枚举类好像老是不通过编译。
...全文
相关推荐
C++程序设计小案例
本文将探讨几个C++程序设计的小案例,包括创建扑克牌类、实现三连珠游戏和解决八皇后问题,这些案例将帮助我们深入理解C++编程的精髓,并提高解决复杂问题的能力。首先,我们以扑克牌程序设计为起点。
数据结构程序设计——以完整的扑克牌为例.pdf
程序设计不仅需要对数据结构本身有深入理解,还要能够根据实际情况选择合适的数据结构来解决问题。2.
C语言扑克牌问题
总的来说,“C语言扑克牌问题”是一个综合性的编程练习,它锻炼了C语言基本功的同时,也促进了对数据结构、算法和程序设计的理解。通过解决此类问题,开发者能够提升编程技能,为更复杂的项目打下坚实基础。
C++课程设计(扑克牌游戏)源代码及报告
在本项目中,"C++课程设计(扑克牌游戏)源代码及报告"是一个典型的结合了编程实践与理论分析的学习任务。它旨在帮助学生通过实际的编程活动掌握C++语言的关键概念,同时锻炼逻辑思维和问题解决能力。
扑克牌游戏程序.7z扑克牌游戏程序.7z
《深入解析扑克牌游戏程序设计》扑克牌游戏程序是一种深受玩家喜爱的计算机软件,它模拟了各种扑克牌玩法,如德州扑克、斗地主、红十等。


