Har försökt att lösa ett ganska knepigt problem är det någon som har förslag på hur detta skall lösas. Jag skulle använda ett binärt värde. Nåt i stil med Du tycker om frågetecken eller :-) Du verkar inte ha så stort intresse av att få hjälp? Du skrev så så här.... Arrogant? Vad du krånglar till det. Jag bugar och tackar det var precis det hät lösningen jag sökte. JAg insåg oxå detta felet när jag vaknade. Vet inte hur det kommer sig. Kan vara så att mina hjärnvågor synkroniserar sig med internet. Har ju trots allt trådlöst nätverk. ;o) Jo så kan det vara, jule är mycket tröttsamt.Hur lösa ????????
Hur kan man få följane att fungera???
Du har två rätt till vänster och då skall label20 tändas inget annat eller
Du har två rätt till höger och då skall label20 tändas inget annat eller
du har två rätt till vänster & två rätt till höger label20 & label 26 tändas
annars skall inga labels tändas.
OSV.....
titta längst ner hur JOKERns vinstgrupper ser ut...
räknaren fungerar perfekt
OBS OBS OBS använder endast VB6
Dim count As Integer
count = 0
'************************************* 1 rätt *************
If Val(TxtJoker(1)) = Val(TxtJrätt(1)) Then count = count + 1
If Val(TxtJoker(1)) = Val(TxtJrätt(1)) Then
TxtJrätt(1).ForeColor = vbWhite
Else
TxtJrätt(1).Enabled = False
End If
'********************************************2 rätt ****************
If Val(TxtJoker(2)) = Val(TxtJrätt(2)) Then count = count + 1
If Val(TxtJoker(2)) = Val(TxtJrätt(2)) Then
TxtJrätt(2).ForeColor = vbWhite
Else
TxtJrätt(2).Enabled = False
End If
'*************************************** 3 rätt *************
If Val(TxtJoker(3)) = Val(TxtJrätt(3)) Then count = count + 1
If Val(TxtJoker(3)) = Val(TxtJrätt(3)) Then
TxtJrätt(3).ForeColor = vbWhite
Else
TxtJrätt(3).Enabled = False
End If
'************************************* 4 rätt
If Val(TxtJoker(4)) = Val(TxtJrätt(4)) Then count = count + 1
If Val(TxtJoker(4)) = Val(TxtJrätt(4)) Then
TxtJrätt(4).ForeColor = vbWhite
Else
TxtJrätt(4).Enabled = False
End If
'************************************ 5 rätt
If Val(TxtJoker(5)) = Val(TxtJrätt(5)) Then count = count + 1
If Val(TxtJoker(5)) = Val(TxtJrätt(5)) Then
TxtJrätt(5).ForeColor = vbWhite
Else
TxtJrätt(5).Enabled = False
End If
'************************************ 6 rätt
If Val(TxtJoker(6)) = Val(TxtJrätt(6)) Then count = count + 1
If Val(TxtJoker(6)) = Val(TxtJrätt(6)) Then
TxtJrätt(6).ForeColor = vbWhite
Else
TxtJrätt(6).Enabled = False
End If
'************************************ 7 rätt
If Val(TxtJoker(7)) = Val(TxtJrätt(7)) Then count = count + 1
If Val(TxtJoker(7)) = Val(TxtJrätt(7)) Then
TxtJrätt(7).ForeColor = vbWhite
Else
TxtJrätt(7).Enabled = False
End If
'*************************************
FrmJokervinst.Visible = True
Label27.Visible = True
Label27.Caption = "Antal Rätt " & count
'************************************ JOKER vinstgrupper ******************
' 7 rätt = 1234567 = label 15
' 6 rätt = 123456* eller *234567 = label 16
' 5 rätt = 12345** eller **34567 = label 17
' 4 rätt = 1234*** eller ***4567 = label 18
' 3 rätt = 123**** eller ****567 = label 19
' 2 rätt = 12***** eller *****67 = label 20
' 4 första + de 2 sista = 2 vinster = label 21
' 2 första + de 4 sista = 2 vinster = label 22
' 3 första + de 3 sista = 2 vinster = label 23
' 3 första + de 2 sista = 2 vinster = label 24
' 2 första + de 3 sista = 2 vinster = label 25
' 2 första + de 2 sista = 2 vinster = label 26Sv: Hur lösa ????????
<code=vb>
Dim Ratt As Integer, Bit As Integer
Ratt = 0 : Bit = 64
For ii = 1 To 7
If TxtJoker(ii) = TxtJrätt(ii) Then Ratt = Ratt Or Bit
Bit = Bit \ 2
Next
Select Case Ratt
Case &H7f: '1111111
label15
Case &H7e, &H3f '1111110 0111111
label16
Case &H7c, &H1f '1111100 00111111
label17
och så vidare
End Select
</code>Sv: Hur lösa ????????
Använd kalkylatorn i windows. Tryck på Bin, skriv in nollor och ettor och välj Dec eller HexSv:Hur lösa ????????
Vad blev inte rätt?
Vad provade du istället?
En variant som torde vara lite lättare att greppa är att byta ut bit-grejen mot en array istället, något i stil med;
<code>
Dim correct(1 to 8) as boolean
dim i as long
for i = 1 to 8
correct(i) = (joker(i) = rätt(i))
next i
for i = 1 to 8
if not correct(i) then exit for
next
left=i
for i = 8 to 1 step -1
if not correct(i) then exit for
next
right=i
</code>Sv: Hur lösa ????????
Du verkar inte ha så stort intresse av att få hjälp?
Tycker det verkar vara lite arrogant...
Ville jag inte ha hjälp skulle jag för f... inte skriva på Pellesoft NIKLAS
Kolla hur vinstgruppen ser ut : Här är kruxet för att lösa det rätt
GOD JUL & GOTT NYTT ÅRSv:Hur lösa ????????
<b>Har provat och det blir inte rätt ändå.
Något annat förslag</b>
Arrogant?
Jag menar inte att du inte vill ha hjälp, jag menar att du inte gör så att man har någon större lust att ge hjälp.
Det underlättar om du försöker förklara att du faktiskt har försökt själv, vad du har försökt, osv.Sv: Hur lösa ????????
Så här skule jag gjort det:
Dim TextBox As TextBox
Dim Index As Long
Dim Count As Long
Dim CountLeft As Long
Dim CountRight As Long
For Each TextBox In TxtJrätt
If TextBox.Text = TxtJoker(TextBox.Index).Text Then
If Count = CountLeft Then
CountLeft = CountLeft + 1
End If
Count = Count + 1
TextBox.ForeColor = vbWhite
Else
TextBox.Enabled = False
End If
Next
If Count > 0 And CountLeft < Count Then
Index = TxtJrätt.UBound
Do While TxtJrätt(Index).Text = TxtJoker(Index).Text
CountRight = CountRight + 1
Index = Index - 1
Loop
End If
Label15.Visible = (Count = 7)
Label16.Visible = (CountLeft = 6) Or (CountRight = 6)
Label17.Visible = (CountLeft = 5) Or (CountRight = 5)
Label18.Visible = (CountLeft = 4 And CountRight < 2) Or (CountLeft < 2 And CountRight = 4)
Label19.Visible = (CountLeft = 3 And CountRight < 2) Or (CountLeft < 2 And CountRight = 3)
Label20.Visible = (CountLeft = 2 And CountRight < 2) Or (CountLeft < 2 And CountRight = 2)
Label21.Visible = (CountLeft = 4 And CountRight = 2)
Label22.Visible = (CountRight = 2 And CountLeft = 4)
Label23.Visible = (CountLeft = 3 And CountRight = 3)
Label24.Visible = (CountRight = 3 And CountLeft = 2)
Label25.Visible = (CountLeft = 2 And CountRight = 3)
Label26.Visible = (CountRight = 2 And CountLeft = 2)
Sv: Hur lösa ????????
Har nu provat din lösning Andreas och den fungerar till en viss del
om jag har 1 rätt till vänster och 2 rätt till höger så räknar den antäl rätt till 3 det är ok
men nu kommer felet den visar label19 är tre rätt men det skall vara label20 du har ju inte tre rätt till vänster eller höger ju
MvhSv:Hur lösa ????????
Nog om det. Felet är if-satsen som kontrollerar antal rätt till vänster. Den borde vara något sånhär:
For Each TextBox In TxtJrätt
If TextBox.Text = TxtJoker(TextBox.Index).Text Then
Count = Count + 1 'Flyttat upp till innan if-satsen
If Count = TextBox.Index Then 'Det var fel att kolla count mot CountLeft. Det skall vara index för att kontrolera om det infallit något fel.
CountLeft = CountLeft + 1
End If
TextBox.ForeColor = vbWhite
Else
TextBox.Enabled = False
End If
Next
Sv: Hur lösa ????????
men nu fungerar det perfekt TACK för ALL HJÄLP
har bara en liten fråga till.
Lablerna har jag på frame samt att alla ligger visible
nu vill jag att label20 i denna framen skall markeras röd osv för antal rätt
har provat med att sätta labeln till forecolor = vbred fungerar visst inte ändå.
skall jag göra istället så här för varje label
if CountLeft = 2 And CountRight < 2 _
Or CountLeft < 2 And CountRight = 2 then
label20.forecolor = vbred
end if