Problema con il system random

di Anonimizzato15953 il
6 risposte
Ciao a tutti è da poco che programmo in vb e ho fatto solo pochi programmi.
Essi sono tutti semplici ma fra di loro c'è ne uno a cui vorrei aggiungere una funzionalità
Il programma in sè e per se è molto semplice si tratta di un programma che una volta premuto un bottone genera un numero random da 1 a 20
Io vorrei che esso una volte premuto questo pulsante non mi estraesse un numero da 1 a 20 ma una parola. é possibile? vi lascio il codice del mio programma qua sotto.

Public Class Form1

Private Property Shell As Object

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x As New System.Random
Label1.Text = x.Next(1, 20)
End sub
End class

6 Risposte

  • E le parole dove le prendi?
  • Crei un vettore di 21 parole (stringhe), quindi usi il numero generato "i" per accedere all'i-esimo elemento del vettore di parole.
  • Ciao ho creato questo vettore ma non riesco ad applicarlo con il system random.
    Mi puoi aiutare?

    ti lascio qua sotto il codice
    Dim a(20) As String
            a(1) = "Alfonsetti"
            a(2) = "Butti"
            a(3) = "Cilano"
            a(4) = "Cirone"
            a(5) = "Corradini"
            a(6) = "De Orsi"
            a(7) = "Di Giulio"
            a(8) = "Frampi"
            a(9) = "Gattolin"
            a(10) = "Grisoni"
            a(11) = "Mapelli"
            a(12) = "Messina"
            a(13) = "Moretti"
            a(14) = "Pagani"
            a(15) = "Piccardi"
            a(16) = "Pullara"
            a(17) = "Rizzo"
            a(18) = "Spanò"
            a(19) = "Vitalios"
            a(20) = "Zoni"
  • Avevi già scritto il codice per ottenere il valore random ... mettilo in una variabile i e utilizza i per mostrare la stringa a(i)
  • Ho unito il vettore di prima con una variabile per creare delle estrazioni random (vi lascio la variabile qua sotto)
     Dim i As New System.Random
            Label1.Text = i.Next(a)
    ma sotto la "a" fra parentesi il compilatore (che è: "Microsoft Visual Basic 2010 Express") mi crea una riga blu (come se fosse un errore) dandomi il seguente errore:

    "Error 1 Value of type '1-dimensional array of String' cannot be converted to 'Integer'.

    come posso fare?
    vi lascio come sempre il codice completo qua sotto:
        Dim a(20) As String
            a(1) = "Alfonsetti"
            a(2) = "Butti"
            a(3) = "Cilano"
            a(4) = "Cirone"
            a(5) = "Corradini"
            a(6) = "De Orsi"
            a(7) = "Di Giulio"
            a(8) = "Frampi"
            a(9) = "Gattolin"
            a(10) = "Grisoni"
            a(11) = "Mapelli"
            a(12) = "Messina"
            a(13) = "Moretti"
            a(14) = "Pagani"
            a(15) = "Piccardi"
            a(16) = "Pullara"
            a(17) = "Rizzo"
            a(18) = "Spanò"
            a(19) = "Vitalios"
            a(20) = "Zoni"
            Dim i As New System.Random
            Label1.Text = i.Next(a)
  • Mi sembrava di essere stato chiaro prima ... il codice che dovresti usare è quello di prima ... ma devi usare i al posto di Label1.Text

    Parliamo delle basi della programmazione ... come puoi andare avanti a scrivere del codice se non conosci le basi?
Devi accedere o registrarti per scrivere nel forum
6 risposte