Permalänk
Medlem

Hjälp med memoryspel

Jag har hamnat i ett nytt problem som jag inte vet riktigt hur jag ska lösa.
Jag har lyckats med att skapa nya knappar i en panel så fort när jag klickar på en knapp. Jag har lyckats med att sätta ut deras position, namnbestämning, storlek, och deras "nummer". Eftersom detta är ett memoryspel så har det olika knapparna ett nummer. Och ForeColor är = BackColor så fort man startar detta. Men när man ska klicka på de olika knapparna så ska ForeColor ändras.
Det jag vill lösa nu är att ge varandra knapp bland alla 48 knappar var sin siffra i en typ av randomfunktion. Jag vill kunna räkna hur många gånger man har klickat totallt under en omgång och sen vill jag ta bort de 2 knapparna när 2 knappar har klickats på med samma värde. Jag vill kunna kontrollera dessa knappar utanför deras "fönster" i kanske en Timer eller ett ställe som styrs av någon typ av loop? Sen så vill jag att man kan bara klicka på 2 knappar åt gången. Jag vet inte riktigt men skulle vara tacksam för hjälp. Här får ni se hur långt jag har kommit än så länge:

Citat:

Dim xNormal As Integer
Dim yNormal As Integer
Dim xNnumb As Integer
Dim yNnumb As Integer
Dim ButtonN(48) As Button
Dim RND As New Random
Private Sub Normalbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Normalbutton.Click
Normal.Visible = True
Normal.Height = 470
Normal.Width = 675
Me.Height = 540
Me.Width = 705
Hardbutton.Hide()
Normalbutton.Hide()
Highscore.Hide()
Statistics.Hide()
Ending.Hide()
Time.Enabled = True
Timer1.Start()

Randomize()
For i = 1 To 48 Step 1

ButtonN(i) = New Button()
If i = 1 Or i = 9 Or i = 17 Or i = 25 Or i = 33 Or i = 41 Then
xNnumb = 1
Else
xNnumb = xNnumb + 1
End If
If i = 9 Or i = 17 Or i = 25 Or i = 33 Or i = 41 Then
yNnumb = yNnumb + 1
End If
xNormal = 15 + ((xNnumb - 1) * 80)
yNormal = 15 + (yNnumb * 75)
ButtonN(i).Location = New Point(xNormal, yNormal)
ButtonN(i).Size = New Size(75, 70)
ButtonN(i).ForeColor = ButtonN(i).BackColor
ButtonN(i).Text = Int(RND.Next(1, 24))
Normal.Controls.Add(ButtonN(i))
Next
End Sub

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av jacoben1
Jag har hamnat i ett nytt problem som jag inte vet riktigt hur jag ska lösa.
Jag har lyckats med att skapa nya knappar i en panel så fort när jag klickar på en knapp. Jag har lyckats med att sätta ut deras position, namnbestämning, storlek, och deras "nummer". Eftersom detta är ett memoryspel så har det olika knapparna ett nummer. Och ForeColor är = BackColor så fort man startar detta. Men när man ska klicka på de olika knapparna så ska ForeColor ändras.
Det jag vill lösa nu är att ge varandra knapp bland alla 48 knappar var sin siffra i en typ av randomfunktion. Jag vill kunna räkna hur många gånger man har klickat totallt under en omgång och sen vill jag ta bort de 2 knapparna när 2 knappar har klickats på med samma värde. Jag vill kunna kontrollera dessa knappar utanför deras "fönster" i kanske en Timer eller ett ställe som styrs av någon typ av loop? Sen så vill jag att man kan bara klicka på 2 knappar åt gången. Jag vet inte riktigt men skulle vara tacksam för hjälp. Här får ni se hur långt jag har kommit än så länge:

Lägg på en lyssnare på knapparna för Click-eventet.
Lägg till en lista av något slag som är en behållare för klickade knappar.
Lägg till en räknare (int counter).

I lyssnaren kollar du:
1. (if) knappen finns i listan, ta bort den och färga om till "inte markerade".
2. (else if) listans antal knappar är 2, ta bort båda knapparna ur listan och färga om dem till "inte markerade". Lägg till den nya knappen och färga den till "markerad".
3 (else if) inte knappen finns i listan, lägg till den och färga till "markerad".

I slutet av eventkoden så kollar du om knapparna har samma värde, om så ta bort dem från spelplanen och i listan.
I slutet av eventkoden så ökar du även räknaren.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?