真人麻将游戏

点击注册
点击注册
.
真人麻将游戏 你的位置:真人麻将游戏 > 棋牌百科 >

急用VB程序编写21点游戏要写好的压缩包直接用VB能打开

发布日期:2022-04-16 10:21    点击次数:197

急用VB程序编写21点游戏要写好的压缩包直接用VB能打开

二、目的与要求:     1.目的:      培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。

    2.基本要求: 现有一副牌,两人进行21点游戏。

要求每人发最多5张牌,然后将点数相加比较大小,大于10的算半点。

如果都小于21点,则点数大的赢;如果一人超过了21点则另一个人赢;都超过21点都输;一方发完5张牌后<=21点而另一方<5张牌则第一方赢。

详细要求如下: n 编写控制游戏的菜单; n 游戏开始输入玩家的姓名,通过标签显示在窗体上,同时发第一张牌; n 单击“发牌”按钮给相应的玩家发下一张牌,发够5张则不能再发;单击“不要了”不再发牌使两个按钮不可操作,并计算出最后的点数; n 每张牌最多时用四次; n 当两人都不再要牌时,根据上面的规则确定两玩家的输赢,显示最后结果; u 相同两个玩家一次游戏可以进行多局。

    3.创新要求: « 设定一次游戏的局数,局数多的玩家赢得比赛; « 比赛结束显示比赛的详细情况; « 给每张牌分配一种花色; « 可以自己扩展; 三、设计方法和基本原理:     1.问题描述: 1) 一副牌有13种牌,记为1~13,每种牌共4种花色分别发给两人; 2) 单击“发牌”按钮发牌,将牌显示到窗体上,最多5张; 3) 两玩家都不要牌或发够5张后则显示点数并比较点数大小,规则已给出;     2.问题的解决方案:     根据问题描述,可以将问题解决分为步: 1) 定义一维数组n(13),分别赋值为1~13代表13种牌;给两人分牌所以定义二维数组card(2,5),第一列代表玩家,第2~5列分别表示两玩家的牌;定义一维数组num(13)表示每张牌使用的次数 2) 在窗体上利用label控件的caption属性,将牌显示出来,这里可以利用控件数组。

3) 需定义两个全局变量记录发牌的个数game1和game2,到5个后不能在发牌;同时计算出每个玩家的现有点数,同样需定义两个全局变量Add1和Add2; 4) 比较点数大小主要是比较Add1和Add2的大小,同时注意规则。

四、主要技术问题的描述: 此程序要解决的问题有以下几个: 1) 给数组card(2,5)赋值,通过循化程序,从数组n(13)中随机得到数值: Do          Card(i, j) = n(I 1)) nt(Rnd * 13 +        Loop While Card(i, j) = 0 由于每张牌最多4张,因此利用num(13)分别记录n(13)中相应的书的个数,当到4次,则将n()中相应的位置清零。

如card(I,j)得到值为1则: num(1) = num(1) + 1        If num(1) = 4 Then n(1) = 0 2) 利用两个标签控件数组label1(index)和label2(index)显示牌。

因此可以在设计状态下在窗体上添加两个控件数组。

发牌时Label1(Game1).Caption = Card(1, Game1 + 1)同时计算点数    If Card(1, Game1 + 1) > 10 Then                     Add1 = Add1 + 0.5               Else                     Add1 = Add1 + Card(1, Game1 + 1)               End If 3) 设置菜单要输入玩家的姓名,同时要到程序中的变量进行初始化,这样才能连续进行;同时设置窗体上相应控件是否可见。

五、参考资料 ★ Visual Basic 程序设计教程 及 Visual Basic 实验教程 ★ VB6.0程序员指南 ★ VB6.0控件参考手册 ★ MSDN中文版,课程设计网站上提供的其它资料。

六、设计部分的评分标准(本题难度为C级,综合时要乘系数0.8) 完成基本要求前5项(项目符号为“■”部分) 60 基本要求全部完成 80 创新要求完成第一,二项 90 创新要求完成后两项任意一项 100 发我邮箱610835181,谢谢!!!21点中还有特殊的,黑A可作一也可作11,黑桃KA为最大,21点。