vb 二维数组_VB编程21点游戏程序的设计开发

VB编程--21点游戏的设计

32681a6989e1a6c310c0c7169777610f.png

目的与要求:

    1.目的:

     培养综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。

    2.基本要求

现有一副牌,两人进行21点游戏。要求每人发最多5张牌,然后将点数相加比较大小,大于10的算半点。如果都小于21点,则点数大的赢;如果一人超过了21点则另一个人赢;都超过21点都输;一方发完5张牌后<=21点而另一方<5张牌则第一方赢。详细要求如下:

«  编写控制游戏的菜单;

«  游戏开始输入玩家的姓名,通过标签显示在窗体上,同时发第一张牌;

«  单击“发牌”按钮给相应的玩家发下一张牌,发够5张则不能再发;单击“不要了”不再发牌使两个按钮不可操作,并计算出最后的点数;

«  每张牌最多时用四次;

«  当两人都不再要牌时,根据上面的规则确定两玩家的输赢,显示最后结果;

« 相同两个玩家一次游戏可以进行多局。

    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(Int(Rnd * 13 + 1))

      Loop While Card(i, j) = 0

由于每张牌最多4张,因此利用num(13)分别记录n(13)中相应的书的个数,当到4次,则将n()中相应的位置清零。如card(I,j)得到值为1则:

num(1) = num(1) + 1

       Ifnum(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) 设置菜单要输入玩家的姓名,同时要到程序中的变量进行初始化,这样才能连续进行;同时设置窗体上相应控件是否可见。

更多VB编程学习内容及资料,可以添加小编微信号:vbyjk521 获取,最后祝大家学习进步,生活愉快!

cd44502e1cf48daf440546fa25e63406.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值