Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - (VB.net Punteggio) aiutatemi per favore
Forum - C# / VB.NET - (VB.net Punteggio) aiutatemi per favore

Avatar
fifiddu (Normal User)
Rookie


Messaggi: 41
Iscritto: 01/01/2010

Segnala al moderatore
Postato alle 18:55
Domenica, 20/03/2011
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.

Codice sorgente - presumibilmente VB.NET

  1. Dim punteggio As Integer
  2.     Dim x As New Random
  3.     Dim y As String
  4.  
  5.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  6.         TextBox1.Text = punteggio * "1"
  7.         My.Computer.Audio.Play("suono1.wav")
  8.         TextBox2.Text = Val(TextBox2.Text) - Val(TextBox3.Text)
  9.  
  10.         Label1.Text = (x.Next(1, 9))
  11.         Label2.Text = (x.Next(1, 9))
  12.         Label3.Text = (x.Next(1, 9))
  13.         Label4.Text = (x.Next(1, 9))
  14.         Label5.Text = (x.Next(1, 9))
  15.  
  16.         If Label1.Text = "1" And Label2.Text = "1" Then
  17.             punteggio = punteggio + "1"
  18.             Label6.Text = "WIN"
  19.             My.Computer.Audio.Play("suono2.wav")
  20.            
  21.         ElseIf Label1.Text = "1" And Label2.Text = "1" And Label3.Text = "1" Then
  22.             punteggio = punteggio + "10"
  23.             Label6.Text = "WIN"
  24.             My.Computer.Audio.Play("suono2.wav")
  25.         ElseIf Label1.Text = "1" And Label2.Text = "1" And Label3.Text = "1" And Label4.Text = "1" Then
  26.             punteggio = punteggio + "100"
  27.             Label6.Text = "WIN"
  28.             My.Computer.Audio.Play("suono2.wav")
  29.         ElseIf Label1.Text = "1" And Label2.Text = "1" And Label3.Text = "1" And Label4.Text = "1" And Label5.Text = "1" Then
  30.             punteggio = punteggio + "1000"
  31.             Label6.Text = "WIN"
  32.             My.Computer.Audio.Play("suono2.wav")




dove sbaglio?

PM
Avatar
Riki94 (Normal User)
Pro


Messaggi: 93
Iscritto: 30/07/2009

Up
3
Down
V
Segnala al moderatore
Postato alle 19:32
Domenica, 20/03/2011
dando una occhiata veloce direi che
Codice sorgente - presumibilmente Plain Text

  1. punteggio = punteggio + "1"


e gli altri simili (cambiando il valore) non sono corretti...
secondo me dovresti fare
Codice sorgente - presumibilmente Plain Text

  1. punteggio = punteggio + 1


senza virgolette... perchè le virgolette significano testo (o stringa) :)

Ultima modifica effettuata da Riki94 il 20/03/2011 alle 19:33
Oppure punteggio += 1 - Ultimo - 20/03/11 22:06
fifiddu, se punteggio è dichiarato "Integer" perchè gli hai vovuto aggiungere una stringa? - walker93 - 20/03/11 23:06
PM
Avatar
crash outside control (Normal User)
Expert


Messaggi: 217
Iscritto: 12/02/2008

Up
3
Down
V
Segnala al moderatore
Postato alle 23:02
Domenica, 20/03/2011
Il problema non è:
Codice sorgente - presumibilmente Plain Text

  1. 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.

ok risolto, grazie, era come diceva crash outside control, grazie ragazzi. chissà se usavo un select case magari funzionava meglio? - fifiddu - 21/03/11 10:09
PM