| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1531 人关注过本帖
标题:vb新手,看看代码问题
只看楼主 加入收藏
zxc111123123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-7-5
收藏
 问题点数:0 回复次数:3 
vb新手,看看代码问题
Dim Pel As Integer                   '人数
Dim Num As Integer                   '每人持有牌数
Dim Re As Integer                   '定义从何人发牌
Dim Seq As Integer                  '控制发牌顺序
Dim Pm(1 To 54) As Integer          '存储54个数值对应扑克点数
Dim ww As Integer                    ' 存储母牌消失的位置
Private Sub Form_Load()
Load Form1
 
 
Pel = 4: Num = 5                   '游戏人数和持有牌数,根据玩家需要设置
 
 
For i = 2 To 54                  '载入其他53张母牌图片,当然都是背面图案
  Load ta(i)
  ta(i).Visible = True
  ta(i).Left = ta(i - 1).Left - 35
 
Next i
 
 
   For i = Num + 1 To (Pel - 1) * Num + 1 Step Num '载入每个玩家第一张牌
 
      Load Pp(i)
  
   Next i
 
 
 
   Pp(1).Left = 4680: Pp(1).Top = 5520                  '以下是每个玩家第一张牌的位置。根据玩家多少可以修改和添加
 
   Pp(Num + 1).Left = 9240: Pp(Num + 1).Top = 4200
 
   Pp(2 * Num + 1).Left = 6360: Pp(2 * Num + 1).Top = 1920
 
   Pp(3 * Num + 1).Left = 1800: Pp(3 * Num + 1).Top = 2760:
 
 
End Sub
 
Sub Rep()          '洗牌子过程。产生1-54个不同的数值,是游戏的灵魂。
Randomize
Pm(1) = Int(Rnd * 54 + 1)
For i = 2 To 54
110:  Pm(i) = Int(Rnd * 54 + 1)
  For j = 1 To i - 1
    If Pm(i) = Pm(j) Then GoTo 110
  Next j
Next i
 
 
End Sub
 
Private Sub Ck_Click()           '发牌
 
 
Call Rep                         '载入洗牌过程。
 
T1.Enabled = True
 
Ck.Visible = False
 
 
Re = 4                    '设定先从谁发牌。1、2、3、4分别代表不同的玩家。必要时应将本代码移到其他过程中,根据游戏进程设置条件改变re的值。
 
 
Seq = Re * Num - Num + 1  '先发牌的玩家第一张牌的序号。比如玩家为4人,每人5张牌,则牌的序号分别为1-5,6-10,11-15,16-20。如果先从北家发牌则第一张牌的序号为11
 
End Sub
 
一个类似vb斗地主的程序
 
搜索更多相关主题的帖子: 图片 游戏 
2016-07-05 16:31
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:0 
这点代码想要实现斗地主……
我看你的代码也就是发牌而已。这个其实就是rnd,很简单。
个人觉得你的代码效率也偏低,当然你的这个案例对这个要求不高,这样也可以
建议的做法:第一次  在数组1~54取值, 比如Pm(x),将其与Pm(1)对调。 第二次 在数组2~54取值,然后再与Pm(2)对调、依此类推。 这样不用再用一个循环来判断是否重复, 而且循环53次即可。因为最后一次是唯一的不用选。

还有出牌,过牌,牌的大小,判定胜负。而且除了人类玩家出牌,还有电脑玩家自动出牌。全是人类玩家的话还有联网的问题。反正有很多的东西需要解决。
如果真的要做的话,你还是选做好功能框架的设计,简单的说就是规则的设计。不同的规则之间还有优先级的问题。
所有的逻辑关系确定之后,然后才是具体代码的实现。 这个时候因为你已经有成熟的框架,一个好的框架每一个功能都已经十分简单,代码也很会简单
2016-07-05 21:42
zxc111123123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-7-5
收藏
得分:0 
回复 2楼 xiangyue0510
能不能看看用你的发写出来的代码?
2016-07-06 09:30
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:0 
回复 3楼 zxc111123123
我没有做过斗地主或者是类似的软件。
百度上有一些简单的例子。但是都是很简单的,用paint实现绘图,你的扑克牌用paint感觉挺难的。
http://wenku.baidu.com/link?url=EQAIzViTBc1-MAS1Hu9r3ypT8Cu9S_8Bqi9RgReZiaTEjoVsQ3z8Gh_hEXne9MB_YFiOi68MNZfzu49ZpEP58jkV3oXascCyZNhac5uqmSK
个人觉得还是顶层的框架和规则设计影响较大,而不是代码。以前刚编程的时候,往往是有一个地方发生变化,然后就需要推倒全部重做。
具体的代码,只要你逻辑上可以找到规律一般都可以用代码实现,如果不过来论坛求助就可以。
2016-07-06 10:48
快速回复:vb新手,看看代码问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032141 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved