Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: randomize *VB*

Sivun loppuun

juhaz [24.04.2006 19:00:50]

#

Minulla on pelissä nappula, joka avaa frmTaistelu formin, jossa käyttäjä voi taistella vastustajan kanssa ja tämä vastustaja on tietokoneen randomilla antama vastusta (tai ei nyt ihan randomilla).

Käytän siinä tälläistä koodia:

Select Case Label16.Caption
Case Is = 1
 MsgBox "Et voi enää taistella tällä vuorolla!"
Case Else
 Label16.Caption = 1
 Label17.Caption = Label15.Caption
 Label15.Caption = Int(Rnd * 10) + 1
  If Label15.Caption = Label17.Caption Then
   Label15.Caption = Int(Rnd * 10) + 1
  End If
  frmTaistelu.Label5.Caption = Label15.Caption
  frmTaistelu.Show
End Select

Eli tarkoitus olisi, että peli ei koskaan antaisi samaa vastustajaa kuin viimeksi oli. Minun koodini ei kuitenkaan toimi vaan se antaa joka kerta tismalleen saman vastustajan.
Miten minä saisin sen toimimaan?

Ravver [24.04.2006 19:35:50]

#

Lisää rivi

Randomize

vaikka ton frmTaistelun alkuun.

juhaz [24.04.2006 19:58:23]

#

minulla on tuolla command-nappulassa randomize timer, jossa se randomisoi jonkun luvun 1-10 label15 tekstiksi.

Metabolix [24.04.2006 20:02:14]

#

Randomizea ei yleensä kannata kutsua ohjelman aikana kuin kertaalleen.

Blaze [24.04.2006 20:54:23]

#

Anna nyt hyvä mies noille labeleille paremmat nimet.

Niko [25.04.2006 00:00:59]

#

Ei kannata. Kyllähän sää vielä ne löydät helposti jos tulee vaikka kahden vuoden jälkeen katottua koodia uudelleen. Eikä sekään haittaa vaikka niitä olis paljon, kyllähän se oikea aina löytyy ekalla vilkaisulla. Ei auta edes virheiden etsimessessä yhtään. Eikä etenkään jos annat vielä koodin jollekkin muulle. Sanon että täysin turhan vaivan näet jos nimeät ne kunnolla etkä huonosti ;) Ite oon aikoinaan saman virheen tehny eikä niitä muista että mikä on mikäkin parin vuoden jälkeen. Eikä myöskään kannaata mitään tietoa noissa säilittää vaan omissa muuttujissa joista tarpeen vaatin laitat niitä muualle.

juhaz [25.04.2006 00:03:45]

#

Kuinka niitä muuttujien sisältäviä tietoja saa sitten formista toiseen? Minä en ole niitä saanut oikein toimimaan...

nomic [25.04.2006 00:08:42]

#

juhaz kirjoitti:

Kuinka niitä muuttujien sisältäviä tietoja saa sitten formista toiseen? Minä en ole niitä saanut oikein toimimaan...

Muuta Dim -> Public/Global -muotoon
Dim muuttuja as string -> Public muuttuja as string

BadSource [25.04.2006 07:03:18]

#

Pelkkä Public ei tee autuaaksi, kun formin muuttujia kutsutaan toisesta formista. Muuttujiin pitää viitata formin kautta, minkä alle ne on luotu. Eli...

'Form1:ssä esitellään muuttuja
Public Test As String
'Asetetaan muuttujaan arvo esim. Form_Load():ssa
Test = "Testing"
'Form2:ssa esitetään muuttujan arvo messageboxissa
MsgBox Form1.Test

Niko [25.04.2006 12:06:26]

#

Noille voi tehdä vaikka oman moduulin jolloin kaikki on aina samassa paikassa riippumatta siitä missä käytetään

Moduulin nimi tiedot niin

Tiedot.VoikoTasitella jne.


Sivun alkuun

Vastaus

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

Tietoa sivustosta