none
Was ist an dem code falsch vb express 2010 RRS feed

  • Frage

  • bei dem code funktionirt komischer weise nur das Unentschieden

    bei den anderen if passiert einfach nix einfach kein ausgrabe auch keine Fehlermeldung.

    danke jetzt schon mal für den Aufwand 

    Private Sub cmdSpieler2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSpieler2.Click
            If Spieler2Schere.Checked = True Then
                wahlSpieler2 = 1
            Else
                If Spieler2Stein.Checked = True Then
                    wahlSpieler2 = 2
                Else
                    If Spieler2Papier.Checked = True Then
                        wahlSpieler2 = 3
                    End If
                End If
            End If
            If wahlspieler1 = wahlSpieler2 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Unentschiden"
            End If
            If wahlspieler1 = 1 & wahlSpieler2 = 2 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler2 hat gewonnen"
            End If

            If wahlspieler1 = 1 & wahlSpieler2 = 3 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler1 hat gewonnen"
            End If

            If wahlspieler1 = 2 & wahlSpieler2 = 1 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler1 hat gewonnen"
            End If

            If wahlspieler1 = 2 & wahlSpieler2 = 3 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler2 hat gewonnen"
            End If

            If wahlspieler1 = 3 & wahlSpieler2 = 1 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler2 hat gewonnen"
            End If

            If wahlspieler1 = 3 & wahlSpieler2 = 2 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler1 hat gewonnen"
            End If
        End Sub

    Samstag, 23. Februar 2013 21:12

Alle Antworten

  • Hallo, es liegt, so denke ich an diesen Zeilen:

    x = y = z

    wenn alles 3 Zahlen sind, dann geht das nicht. Angenommen y und z sind gleich, dann ist der Teilausdruck y = z, True. Nun ist aber True ungleich x, denn ein Boolean und ein Integer können nie gleich sein.
    http://stackoverflow.com/questions/2027193/a-b-5-in-vb-net-impossible

    Dein Code müsste in etwa so aussehen:

            If wahlSpieler1 = wahlSpieler2 Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Unentschieden"
            ElseIf (wahlSpieler1 = 1 And wahlSpieler2 = 3) Or (wahlSpieler1 = 2 And wahlSpieler2 = 1) Or (wahlSpieler1 = 3 And wahlSpieler2 = 2) Then
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler 1 Hat gewonnen"
            Else
                Label3.Text = "Ergebnis:" & vbCrLf & "Spieler 2 Hat gewonnen"
            End If
    Das ist denke ich auch etwas übersichtlicher und um einiges kürzer ;)

    Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook | Snippets

    Samstag, 23. Februar 2013 21:34
  • ja das ergibtsinn und funktioniert auch

    Danke schön :)

    Samstag, 23. Februar 2013 21:49