Guest User

Untitled

a guest
Apr 23rd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. Structure TileStructure
  2. Dim FlagIndex As Integer
  3. Dim Flipped As Boolean
  4. Dim Matched As Boolean
  5. Dim TileRef As PictureBox
  6. Public Sub Reset()
  7. FlagIndex = -1
  8. Flipped = False
  9. Matched = False
  10. End Sub
  11. End Structure
  12. Dim Tile(16) As TileStructure
  13. Const UNASSIGNED = -1
  14. Const EARTH = 8
  15. Dim iLastFlipped As Integer
  16. Dim iNumFlipped As Integer
  17.  
  18. Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles btnExit.Click
  19. Me.Close()
  20. End Sub
  21.  
  22. Private Sub btnStart_Click(sender As System.Object, e As System.EventArgs) Handles btnStart.Click
  23. Dim i, iPos, iFlag As Integer
  24. Dim iIndex(16), iIndexLimit As Integer
  25. For i = 0 To 15
  26. Tile(i).TileRef.Image = ImageList1.Images(EARTH)
  27. Tile(i).Reset()
  28. iIndex(i) = i
  29. Next i
  30. iLastFlipped = UNASSIGNED
  31. iNumFlipped = 0
  32. iIndexLimit = 16
  33. For iFlag = 0 To 7
  34. iPos = Int(Rnd() * iIndexLimit)
  35. Tile(iIndex(iPos)).FlagIndex = iFlag
  36. For i = iPos To iIndexLimit - 2
  37. iIndex(i) = iIndex(i + 1)
  38. Next i
  39. iIndexLimit -= 1
  40. iPos = Int(Rnd() * iIndexLimit)
  41. Tile(iIndex(iPos)).FlagIndex = iFlag
  42. For i = iPos To iIndexLimit - 2
  43. iIndex(i) = iIndex(i + 1)
  44. Next i
  45. iIndexLimit -= 1
  46. Next iFlag
  47. End Sub
  48.  
  49. Private Sub frmProj12_Load(sender As Object, e As System.EventArgs) Handles Me.Load
  50. Tile(0).TileRef = picTile0
  51. Tile(1).TileRef = picTile1
  52. Tile(2).TileRef = picTile2
  53. Tile(3).TileRef = picTile3
  54. Tile(4).TileRef = picTile4
  55. Tile(5).TileRef = picTile5
  56. Tile(6).TileRef = picTile6
  57. Tile(7).TileRef = picTile7
  58. Tile(8).TileRef = picTile8
  59. Tile(9).TileRef = picTile9
  60. Tile(10).TileRef = picTile10
  61. Tile(11).TileRef = picTile11
  62. Tile(12).TileRef = picTile12
  63. Tile(13).TileRef = picTile13
  64. Tile(14).TileRef = picTile14
  65. Tile(15).TileRef = picTile14
  66. Randomize()
  67. End Sub
  68. Private Sub TileClicked(ByVal sender As System.Object, _
  69. ByVal e As System.EventArgs) Handles _
  70. picTile0.Click, picTile1.Click, picTile2.Click, picTile3.Click, _
  71. picTile4.Click, picTile5.Click, picTile6.Click, picTile7.Click, _
  72. picTile8.Click, picTile9.Click, picTile10.Click, picTile11.Click, _
  73. picTile12.Click, picTile13.Click, picTile14.Click, picTile15.Click
  74.  
  75. Dim picBox As PictureBox
  76. Dim i, Index As Integer
  77. picBox = sender
  78. Index = CInt(picBox.Tag)
  79. If Tile(Index).Flipped = False Then
  80. End If
  81. Tile(Index).TileRef.Image =
  82. ImageList1.Images(Tile(Index).FlagIndex)
  83. Tile(Index).Flipped = True
  84. iNumFlipped += 1
  85. Select Case iNumFlipped
  86. Case 1
  87. iLastFlipped = Index
  88. Case 2
  89. If Tile(Index).FlagIndex = Tile(iLastFlipped).FlagIndex Then
  90. Tile(Index).Matched = True
  91. Tile(iLastFlipped).Matched = True
  92. iLastFlipped = UNASSIGNED
  93. End If
  94. Case 3
  95. iLastFlipped = Index
  96. iNumFlipped = 1
  97. For i = 0 To 15
  98. If Tile(i).Matched = False And i <> Index Then
  99. Tile(i).Flipped = False
  100. Tile(i).TileRef.Image = ImageList1.Images(EARTH)
  101. End If
  102. Next
  103. End Select
  104. End Sub
  105. End Class
Add Comment
Please, Sign In to add comment