Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Jatsin pisteet (VB.NET)

Ibe666 [07.07.2007 17:32:39]

#

Miten miten tämä sama olis vb.netissä?

Private Sub Form_Load()
    Dim nopat()

    'ykköset
    nopat = Array(1, 1, 1, 4, 5)
    MsgBox "Ykköset: " & LaskePisteet(nopat(), 1)
End Sub

Function LaskePisteet(nopat(), kuvio As Integer) As Integer
    Dim pisteet As Integer, i As Integer, j As Integer, t As Integer

    'järjestetään nopat suuruusjärjestykseen
    For i = 0 To 4
        For j = 0 To 3
            If nopat(j) < nopat(j + 1) Then
                t = nopat(j)
                nopat(j) = nopat(j + 1)
                nopat(j + 1) = t
            End If
        Next
    Next

    'lasketaan pisteet kuvion perusteella
    Select Case kuvio
    Case 1, 2, 3, 4, 5, 6 'ykköset-kuutoset
        For i = 0 To 4
            If nopat(i) = kuvio Then
                pisteet = pisteet + kuvio
            End If
        Next
    Case 7 'pari
        If nopat(0) = nopat(1) Then
            pisteet = 2 * nopat(0)
        ElseIf nopat(1) = nopat(2) Then
            pisteet = 2 * nopat(1)
        ElseIf nopat(2) = nopat(3) Then
            pisteet = 2 * nopat(2)
        ElseIf nopat(3) = nopat(4) Then
            pisteet = 2 * nopat(3)
        End If
    Case 8 'kahdet parit
        If nopat(0) = nopat(1) And nopat(2) = nopat(3) And nopat(0) <> nopat(2) Then
            pisteet = 2 * nopat(0) + 2 * nopat(2)
        ElseIf nopat(1) = nopat(2) And nopat(3) = nopat(4) And nopat(1) <> nopat(3) Then
            pisteet = 2 * nopat(1) + 2 * nopat(3)
        End If
    Case 9 'kolmoset
        If nopat(0) = nopat(2) Or nopat(1) = nopat(3) Or nopat(2) = nopat(4) Then
            pisteet = 3 * nopat(2)
        End If
    Case 10 'neloset
        If nopat(0) = nopat(3) Or nopat(1) = nopat(4) Then
            pisteet = 4 * nopat(2)
        End If
    Case 11 'pieni suora
        If nopat(0) = 5 And nopat(1) = 4 And nopat(2) = 3 And nopat(3) = 2 And nopat(4) = 1 Then
            pisteet = 15
        End If
    Case 12 'suuri suora
        If nopat(0) = 6 And nopat(1) = 5 And nopat(2) = 4 And nopat(3) = 3 And nopat(4) = 2 Then
            pisteet = 20
        End If
    Case 13 'täyskäsi
        If nopat(0) = nopat(2) And nopat(3) = nopat(4) And nopat(0) <> nopat(4) Then
            pisteet = pisteet + nopat(0) * 3 + nopat(4) * 2
        ElseIf nopat(0) = nopat(1) And nopat(2) = nopat(4) And nopat(0) <> nopat(4) Then
            pisteet = pisteet + nopat(0) * 2 + nopat(4) * 3
        End If
    Case 14 'sattuma
        For i = 0 To 4
            pisteet = pisteet + nopat(i)
        Next
    Case 15 'jatsi
        If nopat(0) = nopat(4) Then
            pisteet = 50
        End If
    End Select

    LaskePisteet = pisteet
End Function

Antti Laaksonen [07.07.2007 21:53:01]

#

Kovin laajoja muutoksia ei vaadita.

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim nopat() As Integer

    'ykköset
    nopat = New Integer() {1, 1, 1, 4, 5}
    MsgBox("Ykköset: " & LaskePisteet(nopat, 1))
End Sub
Function LaskePisteet(ByVal nopat() As Integer, ByVal kuvio As Integer) As Integer

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta