21点软件工程实践new

21点软件工程实践new

ID:16428391

大小:179.00 KB

页数:24页

时间:2018-08-09

21点软件工程实践new_第1页
21点软件工程实践new_第2页
21点软件工程实践new_第3页
21点软件工程实践new_第4页
21点软件工程实践new_第5页
资源描述:

《21点软件工程实践new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件工程实践报告——————————21点扑克牌游戏一、需求分析阶段1、编写目的该程序用来模拟21点扑克牌游戏,玩家最多可以要5张牌,但如果牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数的大小,大者为赢者。2、游戏规则分析点数计算:每张牌都有点数, 2 到 10 的牌的点数就是其牌面的数字; J 、 Q 、 K 的点数是 10 分; A 有两种算法, 1 或者 11 ,如果 A 算为 11 时总和大于 21 ,则 A 算为 1 。例如 (A,8) 是 19 点,(A,7,J) 则为 18 

2、点。 爆牌:玩家手中牌的总点数超过 21 点。黑杰克(BlackJack):一张 A 带一张 10 点的牌,比其他 21 点的牌大,例如(A,Q)。闲家获得黑杰克,可以获得所下注的1.5倍。 停牌:玩家不再要牌,等待其他玩家操作。要牌:闲家根据自己手上的点数决定是否要牌,如果要牌,则系统再发一张牌给玩家。如果要牌后总点数超过 21 ,则算爆牌,玩家输掉本轮游戏;若要牌后点数为 21 点,则不能再要;如果要牌后总点数不到 21 点,则玩家可以继续“要牌”、“停牌”、“加倍”。庄家持牌总点数少于16,则必须要牌,直到超过16,

3、如果庄家的总点数等于或多于 17 点,则必须停牌。如果庄家手中有A,且A作11点时大于16点,做1点时小于或等于16点,则由庄家自己选择是否要牌。 加倍:双倍下注(Double) 如果您已经抽取了两张纸牌,在这两张牌不是“黑杰克”的前提下,如果认为第三张牌可以让您赢过庄家的手牌,您可以要求「双倍押注」。 您的赌注将增加双倍,而您只可以再抽取一张额外纸牌。 保险:发过牌后如果庄家手中拿到明牌A,玩家就有机会买保险,保险金是玩家当初下注的一半。如果押过保险后,庄家是黑杰克(即庄家的另一张牌为10、J、Q、K),那么需要陪给玩家

4、2倍的保险金。如果玩家选择保险:庄家是黑杰克时,庄家只赢得保险金。庄家不是黑杰克,庄家首先收走保险金,然后进行要牌、比较的程序,与前述相同。如果玩家拿到21点,仍能拿到全部的酬金。如果玩家不选择保险:庄家是黑杰克时,收走玩家赌金。庄家不是黑杰克,仍然进行要牌、比较等程序,与前述相同。 对子:闲家可以选择在自己或其他闲家上下注押对子,如果所压的闲家获得对子(即两张相同种类的牌),则下注闲家胜,庄家赔11倍的筹码。 分牌:若玩家获得对子,则可以选择分牌,将这两张牌分成两手牌,由这个玩家一人操作,每手牌的赌注与开始的赌注相同。分

5、牌后不能“加倍”,拿到 BlackJack 牌型也只算普通的 21 点。牌型比较:所有闲家都与庄家比较。 黑杰克为特殊牌型,比其他所有牌型都大。除黑杰克,其他牌型都以点数比较大小。 庄家和闲家点数相同,或都拿到黑杰克,则为平局。 庄家和闲家都爆牌,系统判断庄家赢。3、数据分析庄家:手牌,点数和,本金;玩家:手牌,点数和,本金,投注;二、模块设计阶段1、基本设计概念和和处理流图要牌加倍分牌玩家开始庄家要牌停牌操作操作点数和点数和比较结束2、结构21点游戏玩家庄家手牌本金投注数手牌本金3、比较表庄家<21=21>21黑杰克不是

6、玩家<=>且<21>21黑杰克不是黑杰克不是且=不是且!=<=21>21结果输平局赢输平局输赢平局输赢输4、主要模块设计模块1:函数名:initial()参数:玩家总数(包含庄家)功能:初始化各玩家的信息;模块2:函数名:Betting()参数:玩家总数;功能:实现玩家下注模块3:函数名:Showprincipal();参数:玩家总数(包含庄家)功能:显示各玩家的本金;模块4:函数名:Dealing();参数:玩家和玩家编号功能:给玩家和庄家发牌;模块5:函数名:Insurance();参数:玩家总数功能:实现处理玩家是否

7、投保险;模块6:函数名:Playerplay();参数:玩家总数功能:实现玩家的操作:要牌,加倍,分牌,停牌;模块7:函数名:Bankerplay();参数:无功能:实现庄家的操作:要牌和停牌;模块8:函数名:Compare();参数:玩家总数功能:实现玩家与庄家的手牌的比较;其他。。。。。三、程序实现流程初始化游戏信息Initial():系统发2张牌Dealing()玩家下注Betting();玩家操作Playerplay();分牌Divide()加倍Double()要牌Want()庄家操作Bankerplay();要牌

8、Want();比较结果Compare()继续结束程序视图:这里说明下结果输赢只判断原始投注的输赢,押对子和保险的输赢不显示;代码:#include"stdafx.h"#include#include#includeusingnamespaces

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。