Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB6] Sanoja randomisti

JussiR [12.11.2006 18:04:17]

#

Mulla on monia sanoja joista haluisin satunnaisesti minkä tahansa textboxiin nappia painamalla. Eli jos mulla on vaikka sanat kissa, koira ja kilpailu niin miten saisin että ohjelma arpoo jonkun niistä textboxiin? Ja noi sanat ei ole listboxissa tai textboxeissa vaan koodissa.

Onnistuuko Select Casella ja Randomizella? Mä en osaa noita Case juttuja.

Metabolix [12.11.2006 18:31:28]

#

https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&nimi=Rnd
Int((yläraja - alaraja + 1) * Rnd + alaraja)
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=vbo_4#haarautuminen

JussiR [12.11.2006 19:39:18]

#

Eli toimisiko tämä?

Private Sub ArvoSana()
Dim Numero As Integer
Numero = Int((3 - 1 + 1) * Rnd + 1)

Select Case Index
 Case 1
  Kissa
 Case 2
  Koira
 Case 3
  Kilpailu
End Select

Text1.Text = Case Numero

End Sub

:D Ei taida ihan toimia?

Blaze [12.11.2006 20:02:10]

#

JussiR kirjoitti:

Eli toimisiko tämä?

Nopeimmin vastauksen saat kokeilemalla itse.

JussiR kirjoitti:

Select Case Index

Eihän sulla oo missään määriteltynä Index-nimistä muuttujaa.

JussiR kirjoitti:

Text1.Text = Case Numero

Ei sijoituslauseeseen Casea tule.

JussiR [12.11.2006 20:18:03]

#

Mitä pitäisi tehdä? Miten muttuja määritellään ja miten saan että ohjelma arpoo jonkin noista Caseista?

Antti Laaksonen [12.11.2006 22:06:30]

#

Tässä on yksi toteutus:

Dim numero As Integer
numero = Int(Rnd * 3) + 1

Select Case numero
    Case 1
        Text1.Text = "kissa"
    Case 2
        Text1.Text = "koira"
    Case 3
        Text1.Text = "kilpailu"
End Select

Saman voi tehdä myös näin:

Dim numero As Integer
numero = Int(Rnd * 3) + 1

Dim sana As String
Select Case numero
    Case 1
        sana = "kissa"
    Case 2
        sana = "koira"
    Case 3
        sana = "kilpailu"
End Select

Text1.Text = sana

Tai taulukon avulla:

Dim sanat(3) As String
sanat(1) = "kissa"
sanat(2) = "koira"
sanat(3) = "kilpailu"

Dim numero As Integer
numero = Int(Rnd * 3) + 1

Text1.Text = sanat(numero)

Kirjoita lisäksi ohjelman alkuun (esim. kohtaan Form_Load) rivi "Randomize Timer", jotta ohjelma ei arvo sanoja aina samalla tavalla.

JussiR [12.11.2006 22:10:27]

#

Ok. Kiitti taas hyvistä neuvoista!

Vastaus

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

Tietoa sivustosta