Arr, olen koneellani kokeillut RANDOMIZE TIMER: a% = INT(RND * 6): IF a% = 0 THEN PRINT "0": IF a% = 1 THEN PRINT "1"... käskyä, mutta kone arpoo numero ykkösen liian monta kertaa. Mikä avuksi?
Ja muuten miten saan toimimaan Escillä poistumisen?
Olen laittanut IF INKEY$ = CHR$(27) THEN END koodia jokaisen subin alkuun, mutta kone vain siirtyy seuraavaan subiin esciä painaessa, Apua!
Miten olet havainnut, että ykköstä tulee liikaa? Jos arvot vain muutaman luvun, ei ole mitenkään ihmeellistä, vaikka jokainen niistä sattuisi olemaan ykkönen. Mutta kun lukuja arvotaan enemmän (esim. tuhat), eri lukujen osuuksien pitäisi alkaa tasoittua. QBasicin satunnaislukugeneraattori perustuu melko yksinkertaiseen matemaattiseen lausekkeeseen, joka tuottaa kuitenkin kohtuullisen hyviä satunnaislukusarjoja.
Toiseen ongelmaan on vaikea vastata koodia näkemättä. Kuitenkin END-käsky lopettaa ohjelman varmasti, vaikka oltaisiin aliohjelman sisällä. Jostain syystä ehto ei siis täyty. Luetko näppäimiä muualla aliohjelmissa?
Laita systeemisi arpomaan vaikka 1-1000 ja jos luku on < 500 niin annetaan 0 tai jos > niin 1...
Meitsi kirjoitti:
Laita systeemisi arpomaan vaikka 1-1000 ja jos luku on < 500 niin annetaan 0 tai jos > niin 1...
Noin sitä voi tulla äkkiä ajatelleeksi, mutta käsittääkseni tuosta ei ole mitään hyötyä. Rnd() arpoo luvun väliltä 0-1 (esim. 0.84573496) ja sitten kun laitat rnd() * 10000, se kertoo tuon luvun 10000:lla (0.84573496 * 10000 = 8457.3496. Tämä sitten pyöristetään ja...
Tee vaikka testi, ei siitä sen parempi tule(?).
Aihe on jo aika vanha, joten et voi enää vastata siihen.