好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

12.2 纸牌对象(Card).pdf

2页
  • 卖家[上传人]:oq****t
  • 文档编号:1759063
  • 上传时间:2017-07-13
  • 文档格式:PDF
  • 文档大小:97.93KB
  • / 2 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 12.2 纸牌对象(Card)如果你对玩纸牌尚不熟悉,那最好现在就去拿⼀副,否则你会感觉这⼀章没什么意思⼀副牌有52张,每张都有⼀个花⾊(4种花⾊之⼀)和⼤⼩(13个值之⼀)按桥牌中下降的顺序排列,4种花⾊分别是⿊桃(Spades)、红桃( Hearts)、⽅块(Diamonds)和梅花(Clubs)⼤⼩包括A、2、3、4、5、6、7、8、9、10、J、Q和K根据不同纸牌游戏的规则,A可能⽐K⼤,也可能⽐2⼩如果要定义新对象表⽰纸牌,很明显,实例变量应该是⼤⼩和花⾊不过,实例变量以什么类型定义可能就没这么明显了⼀个⽅法是使⽤apstring类型,⽐如⽤字符串“Spade”表⽰花⾊,⽽⽤字符串“Queen”表⽰⼤⼩其缺点是难以⽐较两张牌的花⾊和⼤⼩另⼀个可选的⽅法是,使⽤整型数给⼤⼩和花⾊编码这⾥的编码,并不是很多⼈认为的加密(或者说译成密码)在计算机科学家的⼼⽬中,编码就像是在数字序列和希望表⽰的事物之间定义⼀个映射例如,Spades |→ 3Hearts |→ 2Diamonds |→ 1Clubs |→ 0“ |→”是表⽰映射的数学符号。

      该映射最明显的特性是,花⾊按顺序映射到整型数,所以我们可以通过⽐较整型数来⽐较花⾊牌⼤⼩的映射也是显⽽易见的,每个数字⼤⼩映射到相应的整型数,带⼈像的扑克牌以下⾯⽅式映射:J |→ 11Q |→ 12K |→ 13使⽤数学符号表⽰映射的原因是,映射并⾮C++程序的⼀部分,⽽是程序设计的⼀部分,但是它们从来不会显式地出现在代码中Card类型的定义如下:struct Card{int suit, rank;Card ();Card (int s, int r);};Card::Card () {suit = 0; rank = 0;}Card::Card (int s, int r) { suit = s; rank = r;}Card有两个构造函数,构造函数没有返回类型且与结构体同名,通过这两点可以识别它们第⼀个构造函数不接受任何参数,它把实例变量初始化为⽆效值(梅花0)第⼆个构造函数更加有⽤,它有两个参数,分别是纸牌的花⾊和⼤⼩下⾯代码创建了⼀个名为threeOfClubs的对象,它表⽰梅花3Card threeOfClubs (0, 3);第⼀个参数0表⽰花⾊为梅花,第⼆个参数⾃然是表⽰牌的⼤⼩为3。

      W3Cschool()最⼤的技术知识分享与学习平台此篇内容来⾃于⽹站⽤户上传并发布。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.