Som nybörjare försöker jag att skapa ett mastermindspel och har fastnat när spelet skall markera med svarta "pluttar" att man har gissat rätt färg på rätt plats. Jag har skapat fyra labels som ligger som en array både för gissningar och markeringar för om man har gissat rätt. Jag har gjort ett mastermind-spel för många år sedan. Jag gjorde så att jag lagrade i en variabel vilken av bilderna som det hade kommit en "plutt" i: Jag har försökt med följande kod med det fungerar inte. Vad är felet? Eftersom du har deklarerat variablen "PluttIndex" innuti suben förstörs denna när suben är klar. Då börjar den om från noll varje gång.Mastermind-vektorer Marit
Men jag får bara markeringarna så att de avslöjar vilken plats den rätta färgen finns. Rätt plats markeras genom att svart bakgrundsfärg visas.
(Datorn slumpar fram fyra färger som också ligger i en array.)
Kan man lösa detta med if else satser. Eller hur gör jag med vektorerna? Blir mycket tacksam för svar.Sv: Mastermind-vektorer Marit
Sub SättPlutt()
Static PluttIndex as Long
lblPlutt(PluttIndex).Backcolor = &H0
PluttIndex=PluttIndex +1
End SubSv: Mastermind-vektorer Marit
Private Sub lblFärgVal_Click(Index As Integer)
Dim PluttIndex As Integer
' klickar där jag vill placera vald färg
lblFärgVal(Index).BackColor = txtVäljFärg.BackColor
' Undersöker om vald färg är lika med den som
'datorn har slumpat fram
If lblFärgVal(Index).BackColor = lblVärde(Index).BackColor Then
'Om färgen är rätt så sätts en svart "plutt" börjar på index 0
lblRättFel(PluttIndex).BackColor = vbBlack
PluttIndex = PluttIndex + 1
End If
End Sub
Det blir bara svart "plutt" i index 0 i array lblRättFel även om andra färgval är riktiga.Sv: Mastermind-vektorer Marit
Lös detta genom att deklarera den global eller som statisk (det senare är att föredra).
Byt: Dim PluttIndex as Interger
Mot: Static PluttIndex as Interger