Miten voin valita Randomilla että ottaako se A, B tai C??
q = int(rnd * 2)
if q = 0 then print "A"
if q = 1 then print "B"
if q = 2 then print "C"
ja tarkoitus olisi saada se vielä messageboxiin.
ainakin tähän asti on toiminut näin:
q = int(rnd * 2) if q = 0 then MsgBox "A" if q = 1 then MsgBox "B" if q = 2 then MsgBox "C"
Private Sub Command1_Click() Dim random As Variant A = "Oot puke! " B = "Oot sairas! " C = "Oot säälittävä! " q = Int(Rnd * 2) If q = 0 Then MsgBox "A" If q = 1 Then MsgBox "B" If q = 2 Then MsgBox "C" MsgBox random & Text1.Text End Sub
ei oikeen onnistu tolla
pistä MsgBox A, MsgBox "a" msgboxittaa a eikä muuttujan a sisällön.
tai pistä
Private Sub Command1_Click() Dim random As Variant A$ = "Oot puke! " B$ = "Oot sairas! " C$ = "Oot säälittävä! " q = Int(Rnd * 2) If q = 0 Then MsgBox A$ If q = 1 Then MsgBox B$ If q = 2 Then MsgBox C$ MsgBox random & Text1.Text End Sub
pah $ merkit muuttujien perässä o jäänteitä qb:stä! pois ne! korkeintaan dimmaat ne stringiksi. mutta miksi olet dimmannut ton randomin variantiksi? turhaa. sehän o valmiiksi jo variantti...
Varsinkin jos viestivaihtoehtoja tulee vielä enemmän, ne kannattaa tallentaa taulukkoon.
Private Sub Command1_Click() Dim tiedot(1 To 3) As String, arpa As Integer 'laitetaan vaihtoehdot taulukkoon tiedot(1) = "Vaihtoehto 1" tiedot(2) = "Vaihtoehto 2" tiedot(3) = "Vaihtoehto 3" 'arvotaan luku väliltä 1 - 3 arpa = Int(Rnd * 3) + 1 'näytetään lukua vastaava tieto MsgBox tiedot(arpa) End Sub Private Sub Form_Load() 'alustetaan satunnaislukugeneraattori Randomize Timer End Sub
Lisätietoa:
https://www.ohjelmointiputka.net/oppaat/opas.
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=Randomize
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=Rnd
lainaus:
ainakin tähän asti on toiminut näin:
q = int(rnd * 2) if q = 0 then MsgBox "A" if q = 1 then MsgBox "B" if q = 2 then MsgBox "C"
Tuo ei kyllä mielestäni ihan noin toimi.
Katsos sinulla on siinä int(rnd * 2), tuo rnd * 2 on luku nollasta kahteen. Mutta eihän rnd koskaan anna täyttä ykköstä, joten luvusta ei koskaan tule kahdella kerrottuna täyttä kakkosta, vaan korkeintaan joku 1.99999... kun tuosta poistetaan desimaalit int-fuktiolla, jää vain 1. Sen pitäisi olla rnd * 3, tuo antaa luvun 0-2.
rnd * 2 + 1 antaa luvun 1-2.
Älkää vaan kysykö miten tuo viesti noin meni. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.