急用VB程序编写21点游戏要写好的压缩包直接用VB能打开
发布日期:2022-04-16 10:21 点击次数:197
二、目的与要求: 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点。
|