伊莉討論區

標題: 用VB6寫的撲克牌小遊戲(4支刀) [打印本頁]

作者: rr09192084    時間: 2010-5-13 12:05 AM     標題: 用VB6寫的撲克牌小遊戲(4支刀)

本帖最後由 rr09192084 於 2010-6-1 02:43 PM 編輯

用VB6寫的撲克牌小遊戲(4支刀)
  1. Dim colors(8)As Variant, points(8) As Variant
  2. Dim mysum(2)As Variant, gsum(2) As Variant
  3. Dim poker_issame(5) As Boolean
  4. Dim win As Integer
  5. Private Sub Form_Load()
  6.   Dim i As Integer  Command2.Visible = False  For i = 0 To 7    Picture1(i).BorderStyle = 0    Picture1(i).DragMode = 1    Picture1(i).Visible = False  Next i  For i = 0 To 3    Label1(i).Visible = False    Label2(i).Visible = False  Next i  Label5.Visible = FalseEnd Sub

  7. Private Sub Command1_Click()  Dim i As Integer  Label5.Visible = False  For i = 0 To 3    Label1(i).Visible = True    Label2(i).Visible = True  Next i  Command1.Visible = False  Command2.Visible = True  Label2(2).Caption = ""  Label2(3).Caption = ""  Call showPoker  Call calc_poker(0, mysum(), Label2(0), Label2(1))
  8. End Sub
  9. Private Sub Command2_Click()
  10. Command1.Visible = TrueCommand2.Visible = Falsewin = 0Label5.Visible = TrueLabel5.Caption = ""Dim i As IntegerFor i = 8 To 5 Step -1  Picture1(i - 1).Picture = LoadPicture(App.Path & "\Poker\" & colors(i) & "-" & points(i) & ".jpg")  Call wait(0.05)Next iCall calc_poker(4, gsum(), Label2(2), Label2(3))If gsum(0) > gsum(1) Then  Call swap_pic(Picture1(4), Picture1(6))  Call swap_pic(Picture1(5), Picture1(7))  Call calc_poker(4, gsum(), Label2(2), Label2(3))End IfIf mysum(0) > mysum(1) Then  win = -3  Label5.Caption = Label5.Caption & "閒家烏龍,莊家贏!!"Else  For i = 0 To 1    If mysum(i) > gsum(i) Then      win = win + 1     Else      win = win - 1    End If  Next i  If win > 0 Then    Label5.Caption = Label5.Caption & "閒家贏!!"  Else    If win < 0 Then      Label5.Caption = Label5.Caption & "莊家贏!!"    Else      Label5.Caption = Label5.Caption & "平手!!"  End IfEnd If
  11. End Sub
  12. Private Sub wait(Optional ByVal sgnSecondToDelay As Single)   Dim sgnThisTime As Single, sgnCount As Single   If sgnSecondToDelay = 0 Then      Exit Sub   Else      If sgnSecondToDelay < 0.01 Then         sgnSecondToDelay = 0.01      End If   End If   sgnThisTime = Timer   Do While sgnCount < sgnSecondToDelay      sgnCount = Timer - sgnThisTime      DoEvents   LoopEnd Sub
  13. Private Sub showPoker()
  14. Dim i, j, k As Integermycelect = 0
  15. For i = 1 To 8  Picture1(i - 1).AutoSize = True  Picture1(i - 1).Picture = LoadPicture(App.Path & "\poker\6-1.jpg")  Picture1(i - 1).Visible = FalseNext i
  16. For i = 0 To 3    Picture1(i).Visible = True    Call wait(0.2)    Picture1(i + 4).Visible = True    Call wait(0.2)     For j = 0 To 3      Picture1(i).Left = j * 1000      Picture1(i).Top = j * 800 + 4000      Call wait(0.01)    Next j    Picture1(i).Left = i * 2200 + 300    Picture1(i).Top = 8500
  17.     For k = 0 To 3      Picture1(i + 4).Left = j * 1000      Picture1(i + 4).Top = 4000 - j * 600      Call wait(0.03)    Next k    Picture1(i + 4).Left = i * 2200 + 300    Picture1(i + 4).Top = 300    Call wait(0.2)  Next i
  18.   Call getColorPoint(colors, points)
  19.    For i = 1 To 8      Picture1(i - 1).Tag = CStr(colors(i) * 100 + points(i)) ' 將花色乘上100加上點數放入Tag   Next i
  20.     For i = 4 To 1 Step -1       Picture1(i - 1).Picture = LoadPicture(App.Path & "\Poker\" & colors(i) & "-" & points(i) & ".jpg")       Call wait(0.1)    Next i
  21. End Sub
  22. Private Sub getColorPoint(ByRef c() As Variant, ByRef p() As Variant)Dim i As Integer, j As IntegerDim check As BooleanRandomize (Timer)For i = 1 To 8  check = True  While check = True    check = False    c(i) = Int(Rnd() * 4) + 1    p(i) = Int(Rnd() * 13) + 1    For j = 1 To i - 1      If c(j) = c(i) And p(j) = p(i) Then check = True ' 有重複的不算    Next j  WendNext iEnd Sub
  23. Private Sub Picture1_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single)    If Index = Source.Index Then Exit Sub           ' 只移動自己不處理    If Source.Index > 3 Or Index > 3 Then Exit Sub  ' 點到對方的牌不處理    Call swap_pic(Source, Picture1(Index))          ' 換牌    Call calc_poker(0, mysum(), Label2(0), Label2(1))End Sub
  24. Private Sub swap_pic(ByRef p1 As PictureBox, ByRef p2 As PictureBox)
  25.     Dim tmpPic As StdPicture    Dim tmpStr As String    Set tmpPic = p1.Picture ' 以下3行是圖形互換    Set p1.Picture = p2.Picture    Set p2.Picture = tmpPic    tmpStr = p1.Tag ' 以下3行是花色點數資料互換    p1.Tag = p2.Tag    p2.Tag = tmpStr    Set tmpPic = Nothing ' 釋放掉定義的物件End Sub
  26. Private Sub calc_poker(ByVal Index As Integer, ByRef sum() As Variant, ByRef lb1 As Label, ByRef lb2 As Label)
  27.     Dim i As Integer    Dim f As Double, g As Double    poker_issame(Index) = True    For i = Index + 1 To Index + 3      poker_issame(Index) = poker_issame(Index) And ((Val(Picture1(i).Tag) \ 100) = (Val(Picture1(i - 1).Tag \ 100)))    Next i    For i = 0 To 1      sum(i) = 0    Next i    If poker_issame(0 + Index) = True Then      lb1.Caption = "同花"      lb2.Caption = "同花"      sum(0) = sum(0) + 1000      sum(1) = sum(1) + 1000      For i = 0 To 1        sum(0) = sum(0) + (Val(Picture1(i + Index).Tag) \ 100) / 100 + (13 - Val(Picture1(i + Index).Tag) Mod 100)        sum(1) = sum(1) + (Val(Picture1(i + Index + 2).Tag) \ 100) / 100 + (13 - Val(Picture1(i + Index + 2).Tag) Mod 100)      Next i      Exit Sub    End If    If Val(Picture1(0 + Index).Tag) Mod 100 = Val(Picture1(1 + Index).Tag) Mod 100 Then      lb1.Caption = CStr(Val(Picture1(0 + Index).Tag) Mod 100) & " 一對"      sum(0) = sum(0) + 100      For i = 0 To 1        sum(0) = sum(0) + (Val(Picture1(i + Index).Tag) \ 100) / 10 + (13 - Val(Picture1(i + Index).Tag) Mod 100)      Next i    Else      f = (2 ^ (13 - Val(Picture1(0 + Index).Tag) Mod 100)) / 10000 + (Val(Picture1(0 + Index).Tag) \ 100) / 100000      g = (2 ^ (13 - Val(Picture1(1 + Index).Tag) Mod 100)) / 10000 + (Val(Picture1(1 + Index).Tag) \ 100) / 100000      sum(0) = sum(0) + (Val(Picture1(0 + Index).Tag) Mod 100 + Val(Picture1(1 + Index).Tag)) Mod 10 + f + g      lb1.Caption = CStr((Val(Picture1(0 + Index).Tag) Mod 100 + Val(Picture1(1 + Index).Tag) Mod 100) Mod 10)    End If    If Val(Picture1(2 + Index).Tag) Mod 100 = Val(Picture1(3 + Index).Tag) Mod 100 Then      lb2.Caption = CStr(Val(Picture1(2 + Index).Tag) Mod 100) & " 一對"      sum(1) = sum(1) + 100      For i = 2 To 3        sum(1) = sum(1) + (Val(Picture1(i + Index).Tag) \ 100) / 10 + (13 - Val(Picture1(i + Index).Tag) Mod 100)      Next i    Else      f = (2 ^ (13 - Val(Picture1(2 + Index).Tag) Mod 100)) / 10000 + (Val(Picture1(2 + Index).Tag) \ 100) / 100000      g = (2 ^ (13 - Val(Picture1(3 + Index).Tag) Mod 100)) / 10000 + (Val(Picture1(3 + Index).Tag) \ 100) / 100000      sum(1) = sum(1) + (Val(Picture1(2 + Index).Tag) Mod 100 + Val(Picture1(3 + Index).Tag)) Mod 10 + f + g      lb2.Caption = CStr((Val(Picture1(2 + Index).Tag) Mod 100 + Val(Picture1(3 + Index).Tag) Mod 100) Mod 10)    End IfEnd Sub
複製代碼

作者: s25354362    時間: 2010-6-6 05:27 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: lex770228    時間: 2010-7-4 06:30 PM

感恩                     謝大大無私分享
作者: ii9ii9ii9ii9    時間: 2010-7-8 11:40 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: aeguls    時間: 2010-7-24 06:53 PM

感謝大大您的分享啦 收下來做參考囉 感恩
作者: 26732364    時間: 2010-7-25 06:58 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 金頭人    時間: 2010-8-23 07:35 PM

謝大大無私分享
收下來做參考囉
作者: h81630    時間: 2010-11-8 11:11 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ajeams    時間: 2010-11-22 10:22 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ere3212    時間: 2011-1-2 12:59 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: deer7878978    時間: 2011-2-1 05:09 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: a0956681855g    時間: 2011-2-5 12:49 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ix75109    時間: 2011-3-20 04:20 PM

提示: 該帖被管理員或版主屏蔽
作者: a4h5g4e6f    時間: 2011-4-2 06:09 PM

回復 1# rr09192084

謝謝大大的分享
作者: a7982658    時間: 2011-4-19 01:25 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 100658535    時間: 2011-5-1 02:29 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 100658535    時間: 2011-5-1 02:31 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chiou0624    時間: 2011-5-7 09:58 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: jackyou89    時間: 2011-5-23 08:06 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: mmcl    時間: 2011-5-27 06:17 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: john840909    時間: 2011-5-29 07:29 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: fox3000    時間: 2011-5-31 02:13 PM

不錯的範例
值得下載學習
謝謝
作者: mmii5566    時間: 2011-5-31 06:43 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: diablo5103000    時間: 2011-6-16 03:08 PM

提示: 該帖被管理員或版主屏蔽
作者: diablo5103000    時間: 2011-6-16 03:10 PM

提示: 該帖被管理員或版主屏蔽
作者: likevul3xk4    時間: 2011-6-16 07:08 PM

提示: 該帖被管理員或版主屏蔽
作者: n29z409    時間: 2011-6-22 04:45 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 0911174598    時間: 2011-6-27 03:25 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: tyrhf    時間: 2011-6-28 09:29 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: A0800080    時間: 2011-8-31 04:26 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ghminona6335    時間: 2011-9-6 12:08 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 魔君紫狩    時間: 2011-9-15 11:13 AM

提示: 該帖被管理員或版主屏蔽
作者: ee9123456    時間: 2011-11-26 09:58 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 假惺惺    時間: 2015-1-7 07:34 PM

謝謝版主的分享,我就收下拉!!!!!!!!!!!!!!
作者: jmfarmer    時間: 2020-4-27 01:29 PM

三分感謝,四分感謝,五分感謝
三分感謝,四分感謝,五分感謝




歡迎光臨 伊莉討論區 (http://a17.eyny.com/) Powered by Discuz!