Probleme beim Ungleich-Zeichen

  • Themenstarter Themenstarter vaaaan
  • Beginndatum Beginndatum
V

vaaaan

hallo leute ich muss ein kniffel spiel programmieren doch ich hab ein problem bei einer stelle.

ich möchte,dass das programm mir bei einem 4er pasch ( 4 gleiche zahlen) die meldung gibt pasch 4

so sieht es bei mir aus
Private Sub bewertung()
Dim augen(0 To 4) As Integer
augen(0) = CInt(lbl_wuerfel1.Text)
augen(1) = CInt(lbl_wuerfel2.Text)
augen(2) = CInt(lbl_wuerfel3.Text)
augen(3) = CInt(lbl_wuerfel4.Text)
augen(4) = CInt(lbl_wuerfel5.Text)

Array.Sort(augen)

pasch3(augen)
pasch4(augen)
pasch5(augen)
strasse(augen)
fullhouse(augen)


Private Sub pasch4(ByVal augen As Array)
'prüfen ob 4 aufeinander folgende Zahlen gleich sind
If augen(0) = augen(3) And augen(4) <> augen(3) Then
MsgBox("Pasch 4")
If augen(1) = augen(4) And augen(0) <> augen(1) Then


End If
End If
End If
End Sub


Das problem ist jez, dass er zwar die 4er pasch ansagt
aber nur wenn die 5. zahl größer ist als der 4er pasch also
4 4 4 4 6 da reagiert er mit Pasch 4 bei
4 4 4 4 3 aber sagt er nichts ich komm da grad echt nicht drauf wieso ?

vielleicht kann mir einer weiterhelfen
 
Zunächst mal, auch wenn Du als Gastzugang postest: In diesem Forum wird Wert auf korrekte Groß- und Kleinschreibung gelegt (siehe Netiquette). Dann kann man den Beitrag auch besser lesen, und verstehen. Außerdem solltest Du den Code in die Code-Tags einbetten, dann ist auch das besser zu lesen und zu verstehen.

Dass Deine Funktion "pasch4" nicht funktioniert. liegt daran, dass Du das Array zuvor sortierst. Es steht dann also nicht "44443", sondern "34444". Und wenn Du dann das Element 0 mit dem Element 3 vergleichst, ist es nicht identisch, weil das Element 0 dann den Wert "3" hat.
 
Bei der Netiquette muss ich mich ronaldh anschließen, so ein bisschen Groß-/Kleinschreibung dürfte doch nicht so schwer sein.

Betr deine Vorgehensweise mit einem Array, das finde ich doch etwas übermäßig verkompliziert. Hab mal ein Kniffel für VBA geschrieben, da hab ich für den Vergleich mit einer einfachen Variable gearbeitet. Nach dem Sortieren in der Variable findet man dann Serien ganz einfach mit InStr().
Visual Basic:
'Mal angenommen, man hat einen 4-Pasch mit der 3, so würde die Abfrage so lauten:
If InStr(sWürfel, "1111") Or InStr(sWürfel, "2222") Or InStr(sWürfel, "3333") Or InStr(sWürfel, "4444") Or InStr(sWürfel, "5555") Or InStr(sWürfel, "6666") Then '4-Pasch

Bei Interesse kann ich ja die Word-Datei hier hochladen.


Der Doc!
 
Zurück