21点游戏课程设计报告

合集下载

21点游戏设计

21点游戏设计

课程设计(大作业)报告课程名称:算法设计与分析设计题目:21点游戏设计院系:信息技术学院专业及班级:计算机科学与技术设计者:学号:指导教师:设计时间:2014年6月30日至7月4日昆明学院昆明学院课程设计(大作业)任务书目录昆明学院课程设计(大作业)任务书 (2)一、概述 (5)1.1 题目要求 (5)1.2 JAVA工作平台的简介 (5)1.3 21点游戏发展历史 (6)1.4 21点游戏介绍 (6)二、设计分析 (6)三、总体设计 (7)3.1程序总体结构 (7)3.2重要数据的数据结构设计 (7)3.3总体功能框图 (8)3.4主要算法流程图 (9)四、运行结果与分析 (10)4.1开始游戏 (10)4.2返回上级菜单的示意图 (10)4.3查看玩家记录 (11)4.4结束游戏 (11)五、总结 (12)六、参考文献 (12)附录源代码: (13)一、概述近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而一些游戏能起到锻炼人的思维和修身养性的作用。

越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。

自己对人工智能比较感兴趣,而21点游戏程序的开发实现了这个课题,正好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对弈),让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了解。

人工智能大致可以分成几个任务,这时,这些学科之间的差别就变的很模糊。

人工智能在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实际上是博弈论问题)和家用电气智能化等领域都有广泛的应用。

而这个课程设计就是和人工智能中博弈论领域紧密相关的,我们会尽全力做好它。

1.1 题目要求本次算法设计与分析课程设计题目是“21点纸牌游戏”,系统的主要功能是娱乐游戏,根据52张扑克牌,随机发出两手牌,其中一个玩家为人,另外一方为计算机。

玩家设法使自己的牌的总分达到21分,并要比电脑开的点数大而且不超过这个数值。

Java课程设计-21点小游戏

Java课程设计-21点小游戏

Java课程设计-21点小游戏《面向对象程序设计》课程设计报告题目: 21点小游戏 专业: 班级: 姓名: 指导教师: 成绩:2016—2017学年 第二学期计算机学院2017年5月16日1.课程设计的目的 (1)2.设计思路 (1)3.设计结果与分析 (2)4.设计体会 (6)5.参考文献 (7)6.附录 (7)1.设计目的面向对象程序设计是一门实践性很强的专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

通过这次设计,掌握了以下内容:面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用类、包、接口的定义与使用。

常用工具类与算法的实现(数组、向量、字符串、链表),java.awt、javax.swing中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。

游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。

2.设计思路本游戏选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。

在要牌的过程中,如果所有的牌加起来超过21点,玩家就输了——叫爆掉(Bust),游戏也就结束了。

假如玩家没爆掉,而庄家的总点数加起来大于21点后,那庄家就输了。

假如庄家没爆掉,而玩家也没有爆掉,那么玩家就与庄家比点数大小,大为赢。

一样的点数则庄家赢。

3.设计结果与分析当打开该小游戏时,打开游戏菜单里面的开始游戏,软件运行界面如下图 所示图2 主界面图3 玩家点数大于21点图4 玩家点数大于庄家点数图5 庄家点数大于玩家点数图6 继续要牌图7 玩家点数等于庄家点数4.设计体会该课程设计,除了全面系统的理解了JAVA面向对象编程原理的一般原理和基本实现方法。

21点游戏策划书3篇

21点游戏策划书3篇

21点游戏策划书3篇篇一《21 点游戏策划书》一、游戏概述1. 游戏名称:21 点2. 游戏类型:桌面纸牌游戏3. 游戏目标:通过玩家与庄家的牌面点数比较,争取使手中牌的点数最接近 21 点且不超过 21 点,超过 21 点则为失败。

二、游戏规则1. 参与人数游戏可由 2 到多名玩家进行。

2. 发牌玩家开始时各获得一定数量的牌,庄家也会获得相应牌。

3. 牌面点数计算A 牌既可算 1 点也可算 11 点,其他牌面按其面值计算点数。

4. 比较点数玩家与庄家分别比较手中牌的点数大小,点数接近 21 点且不超过者胜,超过 21 点则失败。

5. 胜负判定若玩家点数超过 21 点则为爆牌,直接输掉游戏;若庄家爆牌则玩家获胜;若双方点数均未超过 21 点,则点数高者胜,若点数相同则为平局。

6. 特殊情况若玩家的前两张牌刚好为 21 点(即 blackjack),则直接获胜,称为“天然 21 点”。

三、游戏流程1. 玩家选择是否参与游戏并进行投注。

2. 庄家发牌给玩家和自己。

3. 玩家根据牌面情况可以选择继续要牌(hit)、停止要牌(stand)或进行其他操作(如加倍等,视具体规则设定)。

4. 庄家根据规则决定是否继续要牌,直到庄家或玩家满足特定条件(如达到一定点数等)停止发牌。

5. 比较双方点数,判定胜负并进行相应的筹码结算。

四、游戏策略1. 玩家要根据手中牌的情况合理决定是否要牌,尽量追求接近 21 点但不超过。

2. 可以根据庄家露出的牌面等情况进行一些策略性的判断和决策。

五、游戏道具1. 一副标准的扑克牌,去掉大小王。

2. 用于放置筹码的筹码盘等。

六、游戏环境与氛围营造1. 提供舒适的游戏桌面和合适的灯光环境。

2. 营造轻松、刺激的游戏氛围,让玩家能够全身心投入游戏。

七、游戏扩展与变化1. 可以增加一些特殊规则,如允许玩家进行保险投注等。

2. 设计不同的游戏难度级别,满足不同玩家的需求。

篇二《21 点游戏策划书》一、游戏简介21 点是一种广受欢迎的扑克牌游戏,玩家通过与庄家竞争点数大小来获取胜利。

21点c++程序设计报告

21点c++程序设计报告
VC++课程设计报告
课题题目:21 点的扑克牌游戏 姓名:鲍浩东
班级:11101902 学号:1110190214 程序功能简介:
一个 21 点的扑克牌游戏,玩家一共可以要 5 张牌,但如果牌的点数超过 21。则 为输了,自动出局;在不超过 21 点的情况下,玩家与庄家比较牌的点数大小, 大者为赢。
cin>>ans;
if((ans=='h')||(ans=='H'))
{cout<<"非常感谢!";}
else
{cout<<"请您输入超级密码";
cin>>m2;
if(s2==m2)
{cout<<"您要的牌点数:"<<endl;
player=player-card;
cin>>w1;
if(w1<11)
cin>>ans; if((ans=='h')||(ans=='H')) {
f1.mima(ans,card,player); f1.Gamble(money,bett);
bet+=bett; cout<<"\t\t\t 你是继续要牌还是停止?(是'H'/否'S')"; cin>>ans; if((playerturns<5)&&(ans=='h')&&(player<=21)) {cout<<endl; cout<<"\t\t\t 这牌是:"<<card<<endl; cout<<"\t\t\t 总数是 :"<<player<<endl; cout<<"\t\t\t 你的剩余资本为:"<<money<<endl; } else{player=player-card; bet=bet-bett; money+=bett;}

21点游戏策划书3篇

21点游戏策划书3篇

21点游戏策划书3篇篇一21 点游戏策划书一、游戏名称21 点二、游戏类型休闲类扑克牌游戏三、游戏目标玩家需要通过手中的牌和庄家的牌比较大小,尽可能接近 21 点但不超过 21 点,以获得胜利。

四、游戏规则1. 牌面大小:2 至 10 的牌面数字与牌面数值相同,J、Q、K 牌面数值为 10,A 牌面可以是 1 或者 11。

2. 发牌:游戏开始前,玩家和庄家都会收到 2 张牌,玩家的第一张牌会被面朝下放置。

3. 比牌:玩家可以选择查看自己的第二张牌,也可以选择停牌。

如果停牌,玩家的手牌大小将由前两张牌决定。

如果查看第二张牌,玩家需要比较自己的手牌和庄家的手牌大小,决定是否继续要牌或者停牌。

4. 要牌:如果玩家认为自己的手牌不够大,可以选择继续要牌,直到达到停牌或者超过 21 点。

5. 获胜:如果玩家的手牌大小不超过 21 点,并且比庄家的手牌大,那么玩家获胜。

如果玩家的手牌大小超过 21 点,那么玩家输牌。

如果玩家和庄家的手牌大小相同,那么玩家平局。

6. 加倍:玩家可以在游戏开始前选择是否进行加倍。

如果进行加倍,玩家需要支付初始赌注的两倍,并且只有在玩家的手牌不超过 21 点时才能继续要牌。

如果玩家的手牌超过 21 点,那么玩家输牌。

五、游戏流程1. 发牌:游戏开始前,玩家和庄家都会收到 2 张牌,玩家的第一张牌会被面朝下放置。

3. 比牌:玩家可以选择查看自己的第二张牌,也可以选择停牌。

如果停牌,玩家的手牌大小将由前两张牌决定。

如果查看第二张牌,玩家需要比较自己的手牌和庄家的手牌大小,决定是否继续要牌或者停牌。

4. 要牌:如果玩家认为自己的手牌不够大,可以选择继续要牌,直到达到停牌或者超过 21 点。

5. 获胜:如果玩家的手牌大小不超过 21 点,并且比庄家的手牌大,那么玩家获胜。

如果玩家的手牌大小超过 21 点,那么玩家输牌。

如果玩家和庄家的手牌大小相同,那么玩家平局。

6. 结算:如果玩家获胜,将会获得下注金额的相应倍数的奖励。

21点游戏设计范文

21点游戏设计范文

21点游戏设计范文21点是一种非常受欢迎的扑克牌游戏,通常由两个或更多个玩家参与。

每个玩家的目标是使手中的牌的点数总和尽可能接近21点,但不能超过21点。

以下是一个关于如何设计一个21点游戏的详细说明。

游戏规则:1.游戏使用一副标准扑克牌,不含大小王。

每张牌的点数为A到K,其中A值1点,J、Q、K值10点。

2.每局游戏开始时,玩家会收到两张面朝上的牌,庄家(计算机或其他玩家)也收到两张牌,其中一张面朝下。

3.玩家可以选择“要牌”或“停牌”。

如果玩家选择“要牌”,则会从牌堆中抽取一张牌并加入手牌,如果点数超过了21点,则玩家输掉这局游戏。

如果玩家选择“停牌”,则庄家会继续向自己的手牌中加牌,直到点数达到17点或超过21点为止。

4.如果玩家的点数超过21点,庄家自动获胜。

如果庄家点数超过21点,玩家获胜。

如果两者都没有超过21点,则点数较靠近21点的一方获胜。

游戏设计:1.游戏界面:设计一个简洁美观的游戏界面,包括牌桌、发牌区和得分区。

牌桌上有两个区域,分别是玩家区和庄家区,用来放置玩家和庄家的手牌。

发牌区用来显示发牌动画和发牌结果。

得分区用来显示当前的得分情况。

2.发牌逻辑:设计一个发牌逻辑,当游戏开始或每局结束后,从牌堆中随机抽取四张扑克牌,两张分别发给玩家和庄家,其中一张庄家的牌面朝下。

同时,在得分区显示当前的得分情况。

3.玩家操作:提供“要牌”和“停牌”两个操作按钮,当玩家点击“要牌”时,从牌堆中抽一张牌并加入玩家手牌,更新得分区的得分情况。

当玩家点击“停牌”时,庄家开始抽牌直到达到17点或超过21点。

4.判断胜负:设计一个胜负判断逻辑,在玩家和庄家都停牌后,比较两者的点数,判断胜负并显示结果。

如果玩家点数超过21点,则庄家获胜;如果庄家点数超过21点,则玩家获胜;如果两者都没有超过21点,则点数较靠近21点的一方获胜。

5.游戏结束后,提供重新开始游戏的选项,可以重新发牌开始新的一局游戏。

这是一个基本的21点游戏设计,你可以根据需要进行进一步的扩展和改进。

21点游戏的设计与开发

21点游戏的设计与开发

21点游戏的设计与开发
21点是一款非常经典和受欢迎的扑克游戏,也是一种非常好玩和具有挑战性的游戏。

在这篇文章中,我将分享一种关于21点游戏的设计与开发的想法。

接下来,需要确定游戏的规则和逻辑。

在21点游戏中,玩家的目标是获得足够接近21点的手牌而不超过此点数,同时比庄家的手牌要高。

玩家首先会收到两张牌,庄家也会收到两张牌但只有一张是面朝上的。

玩家可以选择继续要牌或停牌。

如果玩家的手牌点数超过21点,则游戏结束并玩家输掉。

一旦玩家停牌,庄家会揭开自己的全部手牌。

如果庄家的手牌点数超过21点,则庄家输掉;否则,比较玩家和庄家的手牌点数,点数较高的一方获胜。

在游戏开发的过程中,需要编写一些代码来实现这些规则和逻辑。

首先,需要创建一个扑克牌的类,包含花色和点数的属性,以及展示牌面的方法。

然后,需要编写一个用于生成一副完整的扑克牌的函数。

在游戏开始时,调用这个函数来生成一副牌,然后进行洗牌操作。

接下来,需要编写一些代码来实现发牌、计算手牌点数、判定输赢等功能。

最后,要考虑在玩家进行操作时更新界面和点数的显示,以及在游戏结束时显示胜负结果。

在游戏开发完成后,还可以考虑一些其他的功能和改进,以提升游戏的体验。

例如,可以添加一个计时器来限制玩家的操作时间,增加游戏的紧张感。

还可以为玩家添加一些特殊的道具或技能,以增加游戏的策略性和乐趣性。

此外,还可以增加多个难度级别,让玩家可以根据自己的实力选择适合的游戏难度。

21点纸牌游戏_C++课程设计报告

21点纸牌游戏_C++课程设计报告

郑州轻工业学院课程设计报告课程设计名称: 21点纸牌游戏课程名称:面向对象程序设计(C++)姓名:谢先斌院(系):计算机与通信工程学院专业班级:计算机10-1学号: 541007010144指导教师:王秉政、郭锋成绩:时间:2011年12月26日至 2011年12月30日郑州轻工业学院学生课程设计任务书一、题目(任选一题)21点纸牌游戏公司员工管理系统二、学生信息专业计算机科学与技术学号 541007010144 姓名谢先斌三、基本要求及约束条件(一)“21点纸牌游戏”设计1、需求及内容21点是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。

扑克牌的分值取它们的面值,A充当1分或者11分(由玩家自己选择一种分值),J、Q和K人头牌都是10分。

庄家对付1~7个玩家。

在一局开始时,包括庄家在内的所有参与者都有两张牌。

玩家可以看到它们的所有牌以及总分,而专家有一张牌暂时是隐藏的。

接下来,只要愿意,各个玩家都有机会依次再拿一张牌。

如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。

在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。

只有庄家的总分等于或小于16,那么他就必须再拿牌。

如果庄家引爆了,那么还没有引爆的所有玩家都将获胜,引爆的玩家打成平局。

否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。

如果二者的总分相同,则玩家与庄家打成平局。

编写程序实现游戏,计算机作为庄家,1~7个人作为普通玩家参与游戏。

游戏程序运行输出如下所示:2、要点及分析首先定义表示扑克牌花色与面值的枚举类型,这样程序可读性更强,具体定义如下:typedef enum{ // 扑克牌面值:ACE(A),TWO(2)~TEN(10),JACK(J), QUEEN(Q), KING(K)ACE = 1, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING} RankType;typedef enum{ // 扑克牌花色:CLUBS(梅花), DIAMONDS(方块), HEARTS(红桃)和SPADES(黑桃) CLUBS, DIAMONDS, HEARTS, SPADES} SuitType;struct Card{ // 扑克牌结构体RankType rank; // 扑克牌面值SuitType suit; // 扑克牌花色};(二)“公司员工管理系统”设计1、需求及内容为了方便对公司员工基本信息进行电子化管理,利用面向对象的程序设计技术实现对员工信息的自动化管理。

21点游戏的设计与开发

21点游戏的设计与开发

21点游戏的设计与开发21点是一种非常受欢迎的纸牌游戏,也被称为“黑杰克”。

在这个游戏中,玩家需要与庄家比较点数的大小,但不能超过21点。

现在,我将为你提供一个关于21点游戏的设计与开发的详细说明。

1.游戏规则:-游戏使用一副标准52张扑克牌(不含大小王)。

-游戏开始时,每个玩家和庄家分别发两张牌。

-扑克牌的点数计算方式:-A~10:牌面上的点数。

-J、Q、K:均算作10点。

-A:玩家根据自己的情况判断为1点或11点。

-玩家可以选择"要牌"或者"停牌":-要牌:玩家可以选择继续拿一张牌。

-停牌:玩家结束回合,不再拿牌。

-玩家的目标是使得自己的手牌总点数尽量接近21点,但不能超过21点。

-如果玩家的手牌点数超过21点,则游戏结束,庄家获胜。

-当所有玩家均停牌后,庄家开始发牌,直到手牌点数超过17点为止。

-当庄家手牌点数超过21点时,所有停牌的玩家获胜。

-如果庄家和玩家的手牌点数相同,则为平局。

2.界面设计:-游戏界面应包含以下元素:玩家手牌区域、庄家手牌区域、计分区域、操作按钮区域。

-玩家手牌区域和庄家手牌区域应分别显示当前手牌和点数。

-计分区域应显示玩家和庄家的分数。

-操作按钮区域应包括“要牌”和“停牌”按钮。

3.游戏开发:-使用合适的编程语言和开发工具创建游戏的图形化界面。

-设计一个合适的数据结构来表示扑克牌和玩家的手牌。

-实现游戏的规则逻辑,包括发牌、计算手牌点数、判断游戏胜负等。

-根据玩家的选择更新界面显示和计算分数。

-设计合适的算法来实现庄家的行为,例如在手牌达到17点时停牌。

-在玩家停牌后进行庄家的回合,并进行点数比较与判断胜负。

-在游戏结束后,提供重新开始的选项。

4.测试和调试:-在开发过程中,进行充分的测试和调试,确保游戏逻辑正确且无误。

-可以通过用户反馈来改进游戏的稳定性和性能。

5.添加额外功能:-可以考虑添加一些额外的功能来增加游戏的趣味性,如可选的游戏模式、多个玩家之间的对战等。

21点游戏java课程设计

21点游戏java课程设计

21点游戏java课程设计一、课程目标知识目标:1. 掌握Java语言基础,包括变量定义、数据类型、运算符和条件语句;2. 学会使用Java面向对象编程,包括类的定义、对象的创建与使用;3. 理解21点游戏的规则,并能用Java编写出完整的游戏逻辑。

技能目标:1. 培养学生运用Java语言解决问题的能力,特别是逻辑思维和编程技巧;2. 提高学生面向对象编程的实践能力,使其能够独立设计和实现小型的应用程序;3. 培养学生通过编写代码来解决实际问题的能力,例如设计并实现21点游戏。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发其学习Java的热情;2. 培养学生的团队协作精神,使其在项目开发过程中学会沟通与协作;3. 培养学生面对困难时的耐心和毅力,使其在编程过程中保持积极的态度。

本课程针对高中年级学生,结合学科特点和教学要求,设计出具有实用性和趣味性的21点游戏Java课程。

通过本课程的学习,学生将能够掌握Java编程基础,提高编程实践能力,并在游戏中体验编程的乐趣,培养团队协作和解决问题的能力。

同时,课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. Java基础:- 变量定义、数据类型、常量与变量- 运算符、表达式、流程控制(if、switch、for、while)- 函数定义、调用、重载2. 面向对象编程:- 类的定义、属性、方法- 对象的创建、使用、生命周期- 封装、继承、多态3. 21点游戏规则与逻辑:- 游戏规则介绍- 游戏流程分析- 游戏逻辑实现(洗牌、发牌、计分等)4. Java编程实践:- 编写类和对象实现游戏功能- 设计用户界面与交互- 调试与优化代码教学内容根据课程目标进行科学性和系统性的组织,与教材相关章节紧密结合。

具体教学大纲如下:第1周:Java基础学习,掌握变量定义、数据类型、运算符等基本概念;第2周:学习流程控制,理解函数定义和调用;第3周:面向对象编程,了解类与对象的基本概念;第4周:深入学习封装、继承、多态等面向对象特性;第5周:介绍21点游戏规则,分析游戏流程;第6周:编写游戏逻辑,实现洗牌、发牌等基本功能;第7周:设计用户界面,实现用户与游戏的交互;第8周:课程总结,调试优化代码,展示作品。

java的21点游戏课程设计

java的21点游戏课程设计

java的21点游戏课程设计一、课程目标知识目标:1. 学生理解类和对象的基本概念,掌握Java面向对象编程的基本语法和结构;2. 学生掌握21点游戏的基本规则,并能将其转化为程序逻辑;3. 学生了解并能运用随机数生成器和条件语句来实现游戏功能。

技能目标:1. 学生能运用所学知识独立设计并编写简单的Java程序,实现21点游戏的模拟;2. 学生通过编程实践,提高问题分析、程序设计和调试的能力;3. 学生能通过小组合作,有效沟通,共同完成项目任务。

情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习Java的热情;2. 学生养成积极思考、主动探索的良好学习习惯;3. 学生在团队合作中学会尊重他人,培养协作精神和集体荣誉感。

课程性质:本课程为实践性强的编程课程,旨在通过设计21点游戏,让学生将所学Java知识应用于实际项目中,提高编程能力和团队合作能力。

学生特点:学生已具备一定的Java基础,对面向对象编程有一定了解,但实践经验不足,需通过实际项目来提高。

教学要求:注重理论与实践相结合,强调动手实践,培养学生编程思维和解决问题的能力。

通过小组合作,提高学生沟通协作能力,同时关注学生情感态度的培养。

在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. 面向对象编程基础:- 类的定义与对象创建- 成员变量与局部变量- 方法的定义与调用- 封装与访问控制符- 继承与多态2. 21点游戏规则与逻辑:- 游戏规则介绍- 游戏流程控制- 随机数生成器- 条件语句与循环语句的应用3. 编程实现21点游戏:- 设计游戏类和对象- 编写游戏逻辑代码- 异常处理与调试技巧- 小组合作与分工4. 教学内容安排与进度:- 第一课时:面向对象编程基础回顾,介绍21点游戏规则- 第二课时:设计游戏类和对象,编写基本游戏逻辑- 第三课时:实现随机数生成器,完善游戏逻辑- 第四课时:异常处理与调试,小组合作完成项目5. 教材章节关联:- 《Java编程思想》第3章:对象与类- 《Java编程思想》第4章:继承- 《Java编程思想》第5章:接口与多态- 《Java核心技术》第6章:异常、断言和日志教学内容以确保学生掌握Java面向对象编程基础为前提,结合21点游戏项目,使学生能够将所学知识应用于实际项目中。

c21点游戏课程设计

c21点游戏课程设计

c 21点游戏课程设计一、课程目标知识目标:1. 学生理解21点游戏的规则,掌握基本的算牌策略。

2. 学生掌握概率的基本概念,并能应用于21点游戏中。

3. 学生理解期望值在游戏决策中的应用。

技能目标:1. 学生能够运用加减法进行快速计算,提高心算能力。

2. 学生能够通过分析概率,制定有效的21点游戏策略。

3. 学生能够通过小组合作,进行游戏实践,提高沟通与协作能力。

情感态度价值观目标:1. 学生培养对数学的兴趣,认识到数学在生活中的实际应用。

2. 学生在游戏中学会遵守规则,培养良好的竞技精神。

3. 学生通过游戏体验,理解风险与决策的重要性,形成正确的价值观。

课程性质:本课程为实践性较强的数学应用课程,结合学生年级特点,注重培养学生的实际操作能力和团队协作能力。

学生特点:六年级学生具备一定的数学基础和逻辑思维能力,好奇心强,喜欢挑战性游戏。

教学要求:教师应引导学生将所学数学知识应用于游戏中,激发学生的学习兴趣,提高学生的实践能力。

同时,注重培养学生的情感态度价值观,使学生在游戏中学会遵守规则,形成正确的价值观。

通过分解课程目标为具体学习成果,便于后续教学设计和评估。

二、教学内容1. 游戏规则介绍:讲解21点游戏的基本规则,包括游戏目标、牌的点数计算、牌的组合方式及游戏流程。

2. 算牌策略学习:分析游戏中的概率问题,引导学生学习基本的算牌策略,如“牌型概率”、“牌数概率”等。

3. 概率与期望值:结合课本中概率知识,讲解期望值在21点游戏中的应用,让学生了解如何通过期望值来判断游戏策略的优劣。

4. 实践操作:组织学生进行小组实践,让学生在游戏中运用所学知识,提高心算能力和决策能力。

5. 教学内容安排和进度:- 第一课时:游戏规则介绍,算牌策略学习;- 第二课时:概率与期望值讲解,实践操作指导;- 第三课时:学生实践,总结经验,交流心得。

6. 教材章节关联:- 《数学》课本:概率章节,结合课本知识进行讲解;- 《实践活动手册》:设计实践任务,让学生在课后进行练习。

21点游戏

21点游戏

21点游戏设计报告学院机械学院班级机设C097 学号095596 姓名王志光成绩一、设计思路1.要达到的目的①完成程序的基本要求②对循环和选择结构有更深的理解③对控件的属性及使用有了更广泛的了解④提高了自己综合利用VB语言进行程序设计的能力2.关键问题的解决①对赋值条件语句的编写②判断结果的分支结构的编写③基本控件及控件数组的使用④扑克牌花色的显示⑤编写控制游戏的菜单⑥后期调试二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释If cardnum(0) < 5 Then '向玩家一发牌数小于5rndcard (0) '随机发牌End IfIf cardnum(0) = 5 And cardnum(1) = 5 Then '玩家一和玩家二发牌数都到5a = checkwin() '开始计算点数End If点数算法判断胜负的方法Label17.Caption = "本局双方同时输"ElseIf carddian(0) > 21 ThenLabel17.Caption = "本局" + name2 + "获胜"win2 = win2 + 1ElseIf carddian(1) > 21 ThenLabel17.Caption = "本局" + name1 + "获胜"win1 = win1 + 1ElseIf carddian(0) = carddian(1) ThenLabel17.Caption = "本局平局"ElseIf carddian(0) > carddian(1) ThenLabel17.Caption = "本局" + name1 + "获胜"win1 = win1 + 1ElseLabel17.Caption = "本局" + name2 + "获胜"win2 = win2 + 1End IfFrame3.Visible = TrueIf times > jushu ThenIf win1 > win2 ThenLabel18.Caption = "本次游戏" + name1 + "获胜"ElseIf win1 < win2 ThenLabel18.Caption = "本次游戏" + name2 + "获胜"ElseLabel18.Caption = "本次游戏平局"End IfFrame4.Visible = TrueEnd IfFunction rndcard(i As Integer) As Integer '随机产生牌Randomizerndnum = Int(Rnd() * 52)Do While (cardval(rndnum) = 0)rndnum = Int(Rnd() * 52)Loopcardval(rndnum) = 0If i = 0 Thencard(i, cardnum(i)) = rndnumForm1.Picture4(cardnum(i)).Picture = Form1.Picture1(rndnum) 将玩家1牌通过picture控件数组ElseIf i = 1 Thencard(i, cardnum(i)) = rndnumForm1.Picture5(cardnum(i)).Picture = Form1.Picture1(rndnum)End Ifcardnum(i) = cardnum(i) + 1End Function四、设计方案的完善及目前存在的问题1.设计方案要完善的地方没有比赛规则说明,应该做的更完美2. 目前存在的问题程序中可能有冗余的地方,声明变量的范围可能还略有不足五、本次设计的收获及心得体会对控件的属性及使用有了更广泛的了解,提高了自己综合利用VB语言进行程序设计的能力,增加了调试的经验,对VB有了更深刻的认识,同时也对它产生了浓厚的兴趣。

C++程序课程设计报告_21点游戏

C++程序课程设计报告_21点游戏

随机数,枚举类型?C++面向对象程序设计课程设计报告设计题目:21点游戏学生学号:学生姓名:专业班级:学生成绩:指导教师:医药信息工程学院图像处理与多媒体教研室2011-一、设计任务分析1、21点游戏介绍21点游戏是一个古老的扑克游戏,游戏的规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。

扑克牌的分值取它们的面值,A充当1或者11分,J,Q 和K人头牌都是10分。

庄家VS1~7个玩家。

在开局时,包括庄家在内的所有参与者都有两张牌。

玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐藏的。

接下来,只要愿意,各个玩家都有机会依次再拿一张牌。

如果是玩家的总分超过了21(称为引爆),那么这个玩家就输了。

在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。

只要庄家的总分等于或小于16,那么他就必须再拿牌。

如果庄家引爆了,那么还没有引爆的所有玩家都将获胜,引爆的玩家打成平局。

否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。

如果二者的总分相同,则玩家与庄家打成平局中。

2、实现以下功能:1) 洗牌;2) 发牌;3) 隐藏或显示牌;4) 计算总分;5) 判断胜负。

二、21点游戏流程三、主要数据结构扑克版结构体:typedef enum{//扑克牌面值:ACE(A),TWO(2)~TEN(10),JACK(J),QUEEN(Q),KING(K)ACE=1,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEE N,KING}RankType;typedef enum{//扑克牌花色:CLUBS(梅花),DIAMONDS(方块),HEARTS(红桃)和SPADES(黑桃)CLUBS,DIAMONDS,HEARTS,SPADES}SuitType;struct Card{//扑克牌结构体RankType rank; //扑克牌面值SuitType suit; //扑克牌花色};四、21点游戏类设计五、源代码#ifndef __CARD_H__#define __CARD_H__#include<iostream>//#include<stdlib>using namespace std;typedef enum{//扑克牌面值:ACE(A),TWO(2)~TEN(10),JACK(J),QUEEN(Q),KING(K)ACE=1,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KIN G}RankType;typedef enum{//扑克牌花色:CLUBS(梅花),DIAMONDS(方块),HEARTS(红桃)和SPADES(黑桃)CLUBS,DIAMONDS,HEARTS,SPADES}SuitType;struct Card{//扑克牌结构体RankType rank; //扑克牌面值SuitType suit; //扑克牌花色};ostream &operator<<(ostream &outStream,const Card &card)//操作结果:重载<<运算符{//输出花色if(card.suit==CLUBS) outStream<<"梅花"; //CLUBS表示梅花else if(card.suit==DIAMONDS) outStream<<"方块"; //DIAMONDS表示方块else if(card.suit==HEARTS) outStream<< "红桃"; //HEARTS表示红桃else if(card.suit==SPADES) outStream<<"黑桃"; //SPADES表示黑桃//输出面值if (card.rank==ACE) outStream<<"A"; //ACE表示Aelse if(card.rank==JACK) outStream<<"J"; //JACK表示Jelse if(card.rank==QUEEN) outStream<<"Q"; //JACK表示Qelse if(card.rank==KING) outStream<<"K"; //JACK表示Kelse cout<<(int)card.rank;return outStream;}#endif#ifndef __GAME_OF_21_POINT_H__#define __GAME_OF_21_POINT_H__#include"card.h" //扑克牌#include<ctime>#define LEN_OF_MAX_NAME 21 //最大姓名长度using namespace std;//21点游戏类GameOf21Point声明class GameOf21Point{private:Card deck[52]; //一副扑克牌int dealPos; //发牌位置Card hands[8][21]; //hand[0]保存庄家的牌,hand[1~7]保存各玩家的牌int numOfCard[8]; //庄家(numOfCard[0])及玩家numOfCard[1~7]的牌数char name[8][LEN_OF_MAX_NAME]; //庄家及玩家姓名int numOfPlayer;void Shuffle(); //洗牌int GetTotalScore(Card hand[21],int n); //返回一手牌的总分值void ShowStatus(int num,bool hideFirstCardAndTotalScore=false);//显示庄家(对应num=0)或玩家(对应num>0)的当前状态Card DealOneCard(){return deck[dealPos++];} //发一张扑克牌public://方法声明GameOf21Point(); //无参构造函数virtual ~GameOf21Point(){};void Game();};//初始化扑克牌,发牌位置,庄家与各玩家手中的扑克牌数GameOf21Point::GameOf21Point(){int curPos=0; //当前扑克牌位置for(int suitPos=0;suitPos<4;suitPos++) //花色{for(int rankPos=1;rankPos<=13;rankPos++) //面值{deck[curPos].suit=(SuitType)suitPos; //花色deck[curPos].rank=(RankType)rankPos; //面值curPos++;}}cout<<"多少人加入游戏?(1~7):";cin>>numOfPlayer;while (numOfPlayer<1||numOfPlayer>7) //限制人数在1~7之间{cout<<"玩家人数限定在1~7个,请重新输入人数:";cin>>numOfPlayer;}dealPos=0; //发牌位置int i=0; //临时变量//庄家numOfCard[0]及玩家numOfCard[1~7]手中的扑克牌张数for(i=0;i<=numOfPlayer;i++) numOfCard[i]=0;strcpy(name[0],"庄家");//玩家姓名for(i=1;i<=numOfPlayer;i++){cout<<"输入第"<<i<<"玩家的姓名";cin>>name[i];}cout<<"游戏开始"<<endl;}//洗牌,通过产生随机数,交换随机数对应位置的牌和当前位置的牌void GameOf21Point::Shuffle(){srand((unsigned)time(NULL)); //初始化随机种子for(int curPos=51;curPos>0;curPos--)int pos=rand()%(curPos+1); //产生0~curPos之间的随机数Card temp; //定义一个临时变量用于交换牌temp=deck[pos];deck[pos]=deck[curPos];deck[curPos]=temp;}}int GameOf21Point::GetTotalScore(Card hand[21],int n){int pos;int totalScore=0;for(pos=0;pos<n;pos++) //循环求最大分值(A的分值为11){if(hand[pos].rank==ACE)totalScore+=11; //A的分值为11else if(hand[pos].rank>TEN)totalScore+=10; //J,Q,K的分值为10else totalScore+=(int)hand[pos].rank; //TWO~TEN分值为2~10 }//分值大于21时,将A的分值改为1for(pos=0;totalScore>21&&pos<n;pos++){if(hand[pos].rank==ACE)totalScore-=10;}return totalScore;}void GameOf21Point::ShowStatus(int num,bool hideFirstCardAndTotalScore)//当num=0时,显示庄家当前状态,当num>0,显示第num个玩家的当前状态,当//hideFirstCardAndTotalScore为真时,将隐藏首张扑克牌与总分,否则将显示首//张牌与总分{/*cout<<name[num]<<":"; //显示庄家或玩家姓名//隐藏庄家首张牌if(hideFirstCardAndTotalScore)cout<<"<**庄家首张牌被隐藏**>";else cout<<hands[num][0]; //显示庄家的首张牌for(int i=1;i<numOfCard[num];i++)cout<<hands[num][i];if(!hideFirstCardAndTotalScore)cout<<"总分值"<<GetTotalScore(hands[num],numOfCard[num]);cout<<endl;if(GetTotalScore(hands[num],numOfCard[num])>21)cout<<name[num]<<"引爆!"<<endl;//**不使用输出符<<重载时的代码*/cout<<name[num]<<":"; //显示庄家或玩家姓名//根据庄家的状态隐藏或显示庄家首张牌的花色if(hideFirstCardAndTotalScore)cout<<"<**庄家首张牌被隐藏**>";//隐藏首张牌else if(hands[num][0].suit==CLUBS) cout<<"梅花"; //CLUBS表示梅花else if(hands[num][0].suit==DIAMONDS) cout<<"方块"; //DIAMONDS表示方块else if(hands[num][0].suit==HEARTS) cout<< "红桃"; //HEARTS表示红桃else if(hands[num][0].suit==SPADES) cout<<"黑桃"; //SPADES 表示黑桃//输出庄家首张牌的面值if(hideFirstCardAndTotalScore)cout<<"";else if(hands[num][0].rank==ACE) cout<<"A"; //ACE表示Aelse if(hands[num][0].rank==JACK) cout<<"J"; //JACK表示Jelse if(hands[num][0].rank==QUEEN) cout<<"Q"; //JACK表示Qelse if(hands[num][0].rank==KING) cout<<"K"; //JACK表示Kelse cout<<(int)hands[num][0].rank;for(int i=1;i<numOfCard[num];i++){if(hands[num][i].suit==CLUBS) cout<<"梅花"; //CLUBS表示梅花else if(hands[num][i].suit==DIAMONDS) cout<<"方块";//DIAMONDS表示方块else if(hands[num][i].suit==HEARTS) cout<< "红桃"; //HEARTS 表示红桃else if(hands[num][i].suit==SPADES) cout<<"黑桃";//SPADES表示黑桃//输出面值if (hands[num][i].rank==ACE) cout<<"A"; //ACE表示Aelse if(hands[num][i].rank==JACK) cout<<"J"; //JACK表示Jelse if(hands[num][i].rank==QUEEN) cout<<"Q"; //JACK表示Qelse if(hands[num][i].rank==KING) cout<<"K"; //JACK表示Kelse cout<<(int)hands[num][i].rank;}if(!hideFirstCardAndTotalScore)cout<<"总分值"<<GetTotalScore(hands[num],numOfCard[num]);cout<<endl;if(GetTotalScore(hands[num],numOfCard[num])>21)cout<<name[num]<<"引爆!"<<endl;}void GameOf21Point::Game(){Shuffle(); //洗牌int i,j;//为庄家发两张牌for(i=0;i<2;i++)hands[0][numOfCard[0]++]=DealOneCard();ShowStatus(0,true); //显示庄家状态,隐藏首张牌与总分//向各玩家发牌并显示for(i=1;i<=numOfPlayer;i++){for(j=0;j<2;j++)hands[i][numOfCard[i]++]=DealOneCard();ShowStatus(i);}cout<<endl;//依次向各玩家发额外的牌for(i=1;i<=numOfPlayer;i++){char Ans;cout<<name[i]<<",你还想再要一张牌吗?再要请输入y,不要请输入n:";cin>>Ans;//玩家选择再要一张牌,如果玩家没有引爆则继续发牌//switch(Ans)//{while(Ans!='y' && Ans!='n'){cout<<"你的输入不正确,请重新输入。

21点纸牌游戏课程设计报告(李志文)

21点纸牌游戏课程设计报告(李志文)

《高级语言程序设计》课程设计报告设计题目21点纸牌游戏设计专业计算机科学与技术(教育方向)班级06教育班姓名李志文学号0611140522007年6 月4日目录1.设计目标 (2)2.设计思想 (2)3.类及对象设计 (5)4.程序源代码 (6)5.调试记录 (19)6.总结 (22)21点纸牌游戏设计1.课程设计题目描述、要求及设计目标1.1 题目描述一个21点的扑克牌游戏。

本程序取点于手机游戏,游戏规则与手机游戏相同。

玩家一共可以要5张牌,但如果牌的点数超过21,则暴了,自动出局;在不超过21点的情况下,玩家与庄家比牌的点数大小,大者为赢。

1.2 要求及设计目标(1)将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。

(2)程序中一共有13张扑克牌可以随机抽取,大于10的点数为10,A根据情况点数不同,当前点数小于11时为11点,大于10时则为1点。

(3)要求庄家永远不会暴庄,即庄家可以查看下一张牌,若大于21点,则拒绝,当然,在游戏规则上不能泄露这点秘密。

(4)高级玩家可以查看下一张牌,即按H键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌。

(5)将界面的提示说明全部设计为中文界面,界面的解释详细友好,可以吸引更多的玩家。

2.设计思想本程序设计了一个Game_21类,包含16个类成员函数。

考虑达到更好的封装性,程序所有功能都在类里实现,主函数只调用了一个类的开始成员函数充分体现了类的面向对象编程的优点。

程序中一共有13张扑克牌可以随机抽取,设计了一个random函数实现。

大于10的点数为10,A根据情况点数不同,当前点数小于11时为11点,大于10时则为1点。

用if判断语句控制。

庄家永远不会暴庄,庄家取下一张牌之前先判定取牌后总点数是否会大于21点,大于的话就拒绝取下一张,小于时就继续取牌,在函数中首先随机产生下一张牌,接着用条件语句判定原有点数与新牌的点数之和是否大于21点,然后决定是否取牌。

软件综合实验报告_21点游戏

软件综合实验报告_21点游戏

综合实验报告( 2008-- 2009年度第1学期)实验名称:软件综合实验题目:21点游戏院系:计算机科学与技术系班级:计算0701班组长学号:1071220103组长姓名:丁炳淼指导教师:石敏设计周数: 2 周成绩:日期:2009年1月9日一、综合实验的目的与要求㈠实验目的:掌握用图解决实际问题的方法。

培养综合运用已经学过的程序设计知识,针对实际问题建立相应的数据模型的能力。

综合运用所学过的知识分析实际问题和解决问题的能力,熟练掌握一种开发平台并编写出高效、完整的实用程序。

进一步提高编程能力。

㈡实验要求:图形用户界面包含一个含“开始”、“要牌”、“结束”三个按钮和分别代表“当前分数”和“历史最高分数”的两个标签的Panel对象,以及一个使用CardLayout布局策略的Panel对象,设其中叠放了一幅52张的扑克牌(有“红心”、“黑桃”、“草花”、“方片”四种花色,每种花色有A到K共13张牌)。

当用户点击“开始”按钮时,当前分数清零,“要牌”按钮被激活;当用户点击“要牌”按钮时,计算机在52张牌中随机跳出一张显示给用户,并将其分数添加在“当前分数”的标签中显示出来;如果当前分数超过21,则用户输掉了一局,“要牌”按钮变灰,用户不能再要牌;如果用户点击“结束”按钮,结束当前一局游戏,查看当前分数是否超过历史最高分数,是则更新历史最高分数。

二、设计正文⑴实验题目21点游戏⑵程序总体结构在同一个文件夹下由文件夹cards,存放了名为0.gif~52.gif,代表扑克的图1、图形界面(构造函数以及布局设置,图片的加入及初始)2、事件监听器(ActionListener和WindowListener)3、事件处理的设计(Actionperformed和窗口时间处理)4、main方法⑶界面设计用边布局管理器BorderLayout():north设置为电脑庄家的面板comcards,作边布局BorderLayout(),从左到右面板包括标签“电脑庄家”,文本区拿到牌点数和当前总分数;south设置为玩家的面板mycards,也作作边布局BorderLayout(),从左到右面板包括标签“玩家”,文本区各次拿到牌的点数和当前总分数;west设置了介绍面板introduce,作网格布局GridLayout(3,1)放入3各文本区:2个为介绍,最下面的为用户输入name用;east为设置分数的面版rank,作网格布局GridLayout(3,1),包含1个标签wager,作提示信息,然后为玩家当前分数和历史最高分数的文本区;中央区为一个GridLayout (1,2)网格布局,其左边再加入一个按钮面板作GridLayout(3,2),放入6个按钮,实现5个,另一个作空。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

21点游戏
一、问题描述:要求发牌动画能够连贯有序,并且界面上显示玩家
继续要牌还是开牌以及显示当前玩家和庄家的赌金情况。

二、功能分析:
21点游戏需要解决的问题包括:
(1)整个游戏界面的图形显示;
(2)如何洗牌和发牌;
(3)各牌面的设计,包括正面和反面;
(4)发牌和要牌动画的设计;
(5)牌面点数的计算(A既算1点又算11点);
(6)如何将玩家输入的赌金显示出来并且在每次游戏结束时完成计算;
(7)如何判断游戏结束和终止;
三、程序设计:
1.程序总体结构:首先初始化进入图形模式,然后进入欢迎
界面。

开始游戏后,先是玩家输入赌金,然后发牌,进入
最核心部分——洗牌、发牌、牌面动画、判断和处理玩家
要牌和发牌各种情况、游戏结束动画。

2.界面设计
分为左右两个部分,左边又分为上下两个部分:
左上为玩家和庄家当前的赌金(和小精灵),以及发牌时的牌面动画和牌面;同理,左下为玩家和玩家当前
的赌金,以及发牌时的动画和牌面;
右边显示每局赌金钱数和各种选项(包括:输入赌金、开牌、发牌)
3.重要数据的数据结构设计
1)欢迎界面:
首先进入游戏会有一个欢迎界面,该界面采用翻滚条形式进入主游戏界面。

2)洗牌:
先定义一个一维指针字符数组*ran[52]用来存放52张牌,然后用两个srand()/52函数随机在52张牌中产生两个随机数,再用for循环交换1000次,使52张牌的次序完全打乱,洗牌完成。

3)发牌动画
首先将事先做好的牌的背面图形显示在主界面上,通过delay()函数延迟一段时间再清除这个图形同时沿x轴显示下一张牌的背面,依次循环达到动态效果;待牌到达指定位置时,显示牌的正面,左上角显示牌的值。

4)输入赌金以及赌金的计算:
首先在主界面的右上角开一个窗口,用以显示玩家输入的赌金,用一维字符数组str[i]存放玩家输入的数字字符,然后将str[i]中的数字字符转化为整形数字,通过牌面计算结果,将玩家或者庄家的钱数和赌金相加或相减后得到该
局玩家或庄家的当前赌金,再将该赌金转化为字符串,然
后输出。

5)计算每次玩家和庄家的点数:
该函数需要先定义两个全局变量H和h用以在每次发牌
时计算玩家和庄家的点数,再通过函数jisuan()函数来比
较H和h来判断谁赢,在进入翻滚条界面。

4.函数设计
四、程序设计难点及其解决方法
1.牌面动画:
每个语句之间都有相当紧密的联系,通过for循环每次调用
movebar(i * 20);来实现动态效果;
2.计算点数:
通过全局变量H和h来实现点数的计算,在每次发牌时都要通过if(strcmp(ran[q],"A")==0) /*发牌时计算庄家牌面*/
{
h=h+11; /*A既算11点又算1点*/
if(h>21) h=h-10;
}
if(strcmp(ran[q],"2")==0) h=h+2;
if(strcmp(ran[q],"3")==0) h=h+3;
if(strcmp(ran[q],"4")==0) h=h+4;
if(strcmp(ran[q],"5")==0) h=h+5;
if(strcmp(ran[q],"6")==0) h=h+6;
if(strcmp(ran[q],"7")==0) h=h+7;
if(strcmp(ran[q],"8")==0) h=h+8;
if(strcmp(ran[q],"9")==0) h=h+9;
if(strcmp(ran[q],"10")==0) h=h+10;
if(strcmp(ran[q],"J")==0) h=h+10;
if(strcmp(ran[q],"Q")==0) h=h+10;
if(strcmp(ran[q],"K")==0) h=h+10;
};
来计算庄家的点数,同理用H来计算玩家的点数。

3.输入赌金的计算和显示:
首先要将输入的赌金储存在一维字符串str[5];中,然后再将str[5];中的字符数字转化为整形,
for(i=0;i<5;i++)
{
if(str[i]>='0'&&str[i]<='9')
s=s*10+(str[i]-'0');
}
通过判断点数确定谁赢,计算出庄家和玩家的钱数tz,计算出钱数的数位是多少
while(n1!=0) /*用nz来统计tz的字符长度*/
{
n1=tz1/10;
nz++;
tz1=n1;
}
再将整形钱数转化为倒置的字符型
for(i=0;i<nz;i++) /*将tz转化为倒置的字符串*/
{
tsz[i]=tz2%10+'0';
tz2=tz2/10;
}
tsz[nz]='\0';
再将倒置的字符型转化为正的字符型,然后输出
for(i=0;i<nz;i++)/*将倒置的字符串转化为正的,即tz的字符串形式*/
{
temp=tsz[nz1-1];
nz1=nz1-1;
sz[i]=temp;
}
用同样的方法计算玩家的牌面
五、不足之处
1.当多组牌面出现在主界面时,在右边的牌面上会出现左边
牌面的黄色边框;
2.没有牌面花色(图形界面下,不能用ascll码显示花色);
六、人员分工说明
1.组成员:组长:李特组员:潘培、魏江
2.人员分工:
魏江:主界面
潘培:洗牌、动画、玩家和庄家点数计算;
李特:输入赌金及其计算和输出、玩家和庄家输赢计算、fanguntiao();函数;以及各程序的组合》。

相关文档
最新文档