Oppure

Loading
20/03/11 17:55
fifiddu
ciao a tutti, spero che qualcuno mi aiuti, sto impazzendo per far funzionare bene
il mio programmino didattico, si tratta di una specie di slotmachine, non riesco a far incrementare i punti da me assegnati, ad esempio se escono 2 numeri esatti deve darmi 1 punti se ne escono tre esatti allora sono 10 punti se sono 4 allora 100 punti e cosi via.
il mio problema e che lui mi segna e mi aggiunge solamente un punto per volta, quindi e come se vedesse solo 1 punto per qualsiasi combinzione, perchè non mi segna i punti corretti?
vi posto un po del mio codice per capire.

  Dim punteggio As Integer
    Dim x As New Random
    Dim y As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = punteggio * "1"
        My.Computer.Audio.Play("suono1.wav")
        TextBox2.Text = Val(TextBox2.Text) - Val(TextBox3.Text)

        Label1.Text = (x.Next(1, 9))
        Label2.Text = (x.Next(1, 9))
        Label3.Text = (x.Next(1, 9))
        Label4.Text = (x.Next(1, 9))
        Label5.Text = (x.Next(1, 9))

        If Label1.Text = "1" And Label2.Text = "1" Then
            punteggio = punteggio + "1"
            Label6.Text = "WIN"
            My.Computer.Audio.Play("suono2.wav")
            
        ElseIf Label1.Text = "1" And Label2.Text = "1" And Label3.Text = "1" Then
            punteggio = punteggio + "10"
            Label6.Text = "WIN"
            My.Computer.Audio.Play("suono2.wav")
        ElseIf Label1.Text = "1" And Label2.Text = "1" And Label3.Text = "1" And Label4.Text = "1" Then
            punteggio = punteggio + "100"
            Label6.Text = "WIN"
            My.Computer.Audio.Play("suono2.wav")
        ElseIf Label1.Text = "1" And Label2.Text = "1" And Label3.Text = "1" And Label4.Text = "1" And Label5.Text = "1" Then
            punteggio = punteggio + "1000"
            Label6.Text = "WIN"
            My.Computer.Audio.Play("suono2.wav")



dove sbaglio?
aaa
20/03/11 18:32
Riki94
dando una occhiata veloce direi che
punteggio = punteggio + "1"

e gli altri simili (cambiando il valore) non sono corretti...
secondo me dovresti fare
punteggio = punteggio + 1

senza virgolette... perchè le virgolette significano testo (o stringa) :)
Ultima modifica effettuata da Riki94 20/03/11 18:33
aaa
20/03/11 22:02
crash outside control
Il problema non è:
punteggio = punteggio + "1"

Certo, non è il modo più corretto, ma funziona ugualmente. Viene eseguito un casting implicito da stringa a intero.

Il problema di fifiddu è dovuto all'errato ordine delle condizioni. I controlli devono partire dalla condizione meno probabile.
Per risolvere inverti le condizioni.
aaa