Skip to content

Instantly share code, notes, and snippets.

@nhooyr
Created December 4, 2015 00:19
Show Gist options
  • Save nhooyr/35ce10c27b39eb72fb61 to your computer and use it in GitHub Desktop.
Save nhooyr/35ce10c27b39eb72fb61 to your computer and use it in GitHub Desktop.
Public Class Concentration
Dim cards() As String = {"Ace_Dia", "_2_Dia", "_3_Dia", "_4_Dia", "_5_Dia", "_6_Dia", "_7_Dia", "_8_Dia", "_9_Dia", "_10_Dia", "J_Dia", "Q_Dia", "K_Dia", "Ace_Spades", "_2_Spades", "_3_Spades", "_4_Spades", "_5_Spades", "_6_Spades", "_7_Spades", "_8_Spades", "_9_Spades", "_10_Spades", "J_Spades", "Q_Spades", "K_Spades", "Ace_Clubs", "_2_Clubs", "_3_Clubs", "_4_Clubs", "_5_Clubs", "_6_Clubs", "_7_Clubs", "_8_Clubs", "_9_Clubs", "_10_Clubs", "J_Clubs", "Q_Clubs", "K_Clubs", "Ace_Hearts", "_2_Hearts", "_3_Hearts", "_4_Hearts", "_5_Hearts", "_6_Hearts", "_7_Hearts", "_8_Hearts", "_9_Hearts", "_10_Hearts", "J_Hearts", "Q_Hearts", "K_Hearts"}
Dim cc As Integer
Dim usedCards As Dictionary(Of String, String) = New Dictionary(Of String, String)
Dim prevCard As String
Dim prevBox As PictureBox
Dim currentBox As PictureBox
Public Sub pClick(sender As PictureBox, e As EventArgs) Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click, PictureBox4.Click, PictureBox5.Click, PictureBox6.Click, PictureBox7.Click, PictureBox8.Click, PictureBox9.Click, PictureBox10.Click, PictureBox11.Click, PictureBox12.Click, PictureBox13.Click, PictureBox14.Click, PictureBox15.Click, PictureBox16.Click
If wait.Enabled Then
Return
End If
cc += 1
sender.Image = My.Resources.ResourceManager.GetObject(usedCards.Item(sender.Name))
If cc = 2 Then
If usedCards.Item(sender.Name) = prevCard Then
sender.Enabled = False
prevBox.Enabled = False
Else
currentBox = sender
wait.Start()
End If
cc = 0
Else
prevCard = usedCards.Item(sender.Name)
prevBox = sender
End If
End Sub
Private Sub wait_Tick(sender As Object, e As EventArgs) Handles wait.Tick
currentBox.Image = My.Resources.Card_back
prevBox.Image = My.Resources.Card_back
wait.Stop()
End Sub
Private Sub Concentration_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim randomCards(15) As String
Randomize()
For i As Integer = 0 To 14 Step 2
randomCards(i) = cards(Int(Rnd() * cards.Length))
randomCards(i + 1) = randomCards(i)
Next
randomOrder(randomCards)
For i As Integer = 0 To 15
usedCards.Add("PictureBox" & i + 1, randomCards(i))
Next
End Sub
'sorting algorithm code do not touch plz
Private Sub randomOrder(ByRef al() As String)
For i As Integer = 0 To al.Length - 2
Dim tmp = al(i)
Dim x As Integer = Rnd() * (al.Length - 1 - i) + i
al(i) = al(x)
al(x) = tmp
Next
End Sub
End Class
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment