Tein tässä pari päivää sitten tämmöisen pienen koodin, jolla voi luoda satunnaisia lauseita annetuista sanoista (tässä esimerkissä sanoja on noin 70 ja niistä saatavia lauseita on noin 3000000 erilaista).
Koodi on mielestäni laitettu helposti ymmärrettäväksi ja kaikki jotka osaavat perusjutut qbasicissa, osaavat myös
muuntaa tätä koodia haluamansa laiseksi.
uusi: CLS RANDOMIZE TIMER 'lauseen ensimmäinen osa x% = INT(RND * 12) IF x% = 0 THEN PRINT "Vihreä "; IF x% = 1 THEN PRINT "Kateellinen "; IF x% = 2 THEN PRINT "Vaaleanpunainen "; IF x% = 3 THEN PRINT "Valtavan kokoinen "; IF x% = 4 THEN PRINT "Säälittävä "; IF x% = 5 THEN PRINT "Mahtava "; IF x% = 6 THEN PRINT "Huonomuistinen "; IF x% = 7 THEN PRINT "Komenteleva "; IF x% = 8 THEN PRINT "Pieni "; IF x% = 9 THEN PRINT "Sairas "; IF x% = 10 THEN PRINT "Kuollut "; IF x% = 11 THEN PRINT "Tyhmä "; RANDOMIZE TIMER 'lauseen toinen osa x% = INT(RND * 12) IF x% = 0 THEN PRINT "koira "; IF x% = 1 THEN PRINT "kaverisi "; IF x% = 2 THEN PRINT "rehtori "; IF x% = 3 THEN PRINT "Paavo Lipponen "; IF x% = 4 THEN PRINT "presidentti "; IF x% = 5 THEN PRINT "Pekka "; IF x% = 6 THEN PRINT "virtahepo "; IF x% = 7 THEN PRINT "siivooja "; IF x% = 8 THEN PRINT "pantteri "; IF x% = 9 THEN PRINT "hirviö "; IF x% = 10 THEN PRINT "keksimonsteri "; IF x% = 11 THEN PRINT "veljesi "; RANDOMIZE TIMER 'lauseen kolmas osa x% = INT(RND * 15) IF x% = 0 THEN PRINT "syö "; IF x% = 1 THEN PRINT "koristelee "; IF x% = 2 THEN PRINT "hajottaa "; IF x% = 3 THEN PRINT "valmistaa "; IF x% = 4 THEN PRINT "tappaa "; IF x% = 5 THEN PRINT "maalaa "; IF x% = 6 THEN PRINT "kerää "; IF x% = 7 THEN PRINT "sulattaa "; IF x% = 8 THEN PRINT "myy "; IF x% = 9 THEN PRINT "hinnoittelee "; IF x% = 10 THEN PRINT "kokoaa "; IF x% = 11 THEN PRINT "haistelee "; IF x% = 12 THEN PRINT "ostaa "; IF x% = 13 THEN PRINT "ulkoiluttaa "; IF x% = 14 THEN PRINT "komentaa "; RANDOMIZE TIMER 'lauseen neljäs osa x% = INT(RND * 12) IF x% = 0 THEN PRINT "keksejä "; IF x% = 1 THEN PRINT "euroja "; IF x% = 2 THEN PRINT "silmälaseja "; IF x% = 3 THEN PRINT "ruotsalaisia "; IF x% = 4 THEN PRINT "napanöyhtää "; IF x% = 5 THEN PRINT "puukkoja "; IF x% = 6 THEN PRINT "läksyjä "; IF x% = 7 THEN PRINT "paskaa "; IF x% = 8 THEN PRINT "roskia "; IF x% = 9 THEN PRINT "hevosia "; IF x% = 10 THEN PRINT "Tapparan pelaajia "; IF x% = 11 THEN PRINT "opettajia "; RANDOMIZE TIMER 'lauseen viides osa x% = INT(RND * 12) IF x% = 0 THEN PRINT "Turussa "; IF x% = 1 THEN PRINT "Tampereella "; IF x% = 2 THEN PRINT "vessassa "; IF x% = 3 THEN PRINT "koulussa "; IF x% = 4 THEN PRINT "Laihialla "; IF x% = 5 THEN PRINT "Ruotsissa "; IF x% = 6 THEN PRINT "presidentinlinnassa "; IF x% = 7 THEN PRINT "kaupassa "; IF x% = 8 THEN PRINT "optikolla "; IF x% = 9 THEN PRINT "sängyssä "; IF x% = 10 THEN PRINT "Tyynessä valtameressä "; IF x% = 11 THEN PRINT "saunassa "; RANDOMIZE TIMER 'lauseen kuudes ja viimeinen osa x% = INT(RND * 11) IF x% = 0 THEN PRINT "maanantaisin." IF x% = 1 THEN PRINT "keskiviikkona." IF x% = 2 THEN PRINT "ylihuomenna." IF x% = 3 THEN PRINT "viikonloppuisin." IF x% = 4 THEN PRINT "torstaisin." IF x% = 5 THEN PRINT "keskellä yötä." IF x% = 6 THEN PRINT "tiistaisin." IF x% = 7 THEN PRINT "jouluna." IF x% = 8 THEN PRINT "aina kun huvittaa." IF x% = 9 THEN PRINT "joka aamu." IF x% = 10 THEN PRINT "koko ajan." SLEEP 2 INPUT "Haluatko uuden lauseen(K/E)"; uusilause$ IF uusilause$ = "k" OR uusilause$ = "K" THEN GOTO uusi ELSE END
Itsekin tein tuontapaisen ohjelman joskus kauan sitten. Noin tuo on tosiaan yksinkertainen toteutus, mutta ehkä sanojen tallentamisen ja arpomisen olisi voinut tehdä elegantimmin.
Ihan kiva :) Ei taida tarvita RANDOMIXE TIMER ia joka kohdassa.
En tiedä onko se RANDOMIZE TIMER joka välissä pakollinen, mutta tuleepahan jostain vaihtoehto 5 ja toisesta esim. 3, eipähän ainakaan tule kaikista kuudesta esim. neljättä vaihtoehtoa :)
Loistava
ei nyt mitenkään loistavasti tehty ;)
Minulla on se käsitys, että jos pistää paljon RANDOMIZE TIMERia, niin satunnaisuus ei ole niin hyvä kuin vain yhdellä kerralla.
Juh, RANDOMIZE kuuluisi ajaa vain kerran. Lauseen osat olisi voinut pistää vaikka tiedostoihin josta ohjelma olisi lukenut ne taulukkoon ja sieltä arponut. Näin uusien sanojen lisääminen olisi näppärämpää.
ja GOTO on pahasta ;)
Tuota liikarandomoinnin haittavaikutusta en tiennytkään ja goto on omasta mielestänikin pahasta, mutta enpä usko että se tässä kauheasti haittaa, sillä tämä on suhteellisen lyhyt koodi ja siinäkin on vain yksi goto (jonka senkin saa korvattua helposti)
Tosiaankin RANDOMIZER:n tarvitsee laittaa vain kerran päälle, niin se toimii jokaisessa arpomisessa, mitä koodista löytyy. En tosin ole varma, toimiiko SUBeissa ja FUNCTIOISSA..
Mutta ihan hyvältähän tuo näyttää. Aika samantapaista koodia kuin omani (tosin omani ei ole mitään ihmeellistä :) ).
Hehee... eikä edellisestä kommentistakaan ole aikaa kuin vuosi ja muutama kuukausi päälle :)
Hauska vekotin. Paras lause viidestä ensimmäisestä oli ehdottomasti "Sairas koira koristelee napanöyhtää sängyssä aina kun huvittaa."
Mites noi lauseet sais talteen?
Parhaat ensimmäisistä oli "Huonomuistinen Pekka valmistaa paskaa Laihialla ylihuomenna." ja "Vihreä kaverisi hinnoittelee napanöyhtää Laihialla ylihuomenna." ja "Huonomuistinen hirviö ostaa euroja presidentinlinnassa tiistaisin."
Jännii lauseita varmasti suoltaa :)
"Huonomuistinen Pekka myy ruotsalaisia vessassa viikonloppuisin" *Reps*
Mahtavia lauseita! =D
Jänskiä jutskia kertoopi. Itte tein samankaltaisen mutta eri tyyppisiä lauseita kertovan. Siitä tuli aika pirunmoinen purkkaviritys. Kielenä oli *hyi helevetti* VBScript. Esimerkki sen suoltamasta lauseesta: "Vihreä Make saisi räjähtää nakkibisnekseen." :)
"Pieni rehtori kerää ruotsalaisia kaupassa tiistaisin."
Onneksi en ole ruotsalainen! :P
Aihe on jo aika vanha, joten et voi enää vastata siihen.