Tehtävänanto: Lotto on numeroveikkaus, jossa arvotaan 7 numeroa ja 3 lisänumeroa 39 numerosta. Loton voittoluokat ovat 7 oikein, 6 ja lisänumero oikein, 6 oikein, 5 oikein ja 4 oikein. Tee ohjelma joka ensin arpoo oikean lottorivin. Sitten ohjelmalta voi kysellä, onko jokin lottorivi oikein. Kyselyitä voi olla useampia. Suunnittele itse, miten ohjelman toiminta päättyy. Satunnaisluvun väliltä 1-39 saat arvottua vaikkapa seuraavasti: int arvottu = (int)(39*Math.random()) + 1; (18 pistettä) Ja pisteytys: Vaadittuja asioita: - rivin arpominen - arvattavan rivin lukeminen - voittojen tarkistus - voittoluokan ilmoitus - käyttöliittymä, joka mahdollistaa useiden rivien tarkistamisen * Lottorivin arpominen (3 pistettä) - arpoo 7 numeroa sekä 3 lisänumeroa johonkin järkevään tietorakenteeseen (taulukko) 1 piste - arvotut numerot eivät saa olla samoja 2 pistettä * Arvattavan rivin lukeminen (5 pistettä) - lukee 7 numeroa johonkin järkevään tietorakenteeseen (taulukko) 1 piste - annetut numerot eivät saa olla samoja 2 pistettä - annettava lukuja väliltä 1 -- 39 1 piste - Virheilmoitus ja uuden numeron kysyminen, kunnes saadaan kelpo syöte 1 piste * Rivin tarkistus ja voittoluokan ilmoitus (6 pistettä) - Tarkistetaan, montako käyttäjän arvaamista luvuista löytyy oikeasta lottorivistä + lisänumeroista. - esim. 2 sisäkkäistä for-silmukkaa jos 2 pistettä käytetty 7:n mittaisia int-taulukoita - kaikin puolin toimiva ratkaisu 2p - taulukkojen järjestäminen + binäärihaun tekeminen jokaiselle alkiolle toisesta taulusta on jo sen verran monimutkaista logiikkaa (vaikka periaatteessa toimisikin) että siitä sai vain 1 pisteen (olettaen että järjestäminen + binäärihaku kunnossa) (mahdollista myös asettaa alkiot järjestykseen samalla kun niitä kysytään) - pelkkä binäärihaku ilman taulukon järjestämistä = 0 pistettä - voittoluokan ilmoitus 2 pistettä - mahdollisuus kysyä useita rivejä 2 pistettä * Järkevä metodijako + yleinen siisteys (4 pistettä) - main -metodi (ja muut metodit) muotoiltu 1 piste oikein - Toimintoja jaettu järkeviin metodeihin 1 piste (ei esim. sama koodi monta kertaa peräkkäin) - Parametreja osattu käyttää (ei esim. 1 piste käytetty metodeissa muuttujia, jotka eivät oikeasti näy sinne asti) - Kaarisulkeet, muuttujien määrittelyt yms 1 piste kunnossa * Yleisvähennyksiä - taulukoiden koot väärin (lottonumerot = new int[6] tms.) -1 piste - yleinen sekavuus -1 tai -2 pistettä - kutsutaan ei-static metodeja static kontekstista tai muuta sekoilua olioiden kanssa -1 tai -2 pistettä - sisennykset puuttuu kokonaan -2 pistettä, siinä määrin sekaisin että haittaa luettavuutta -1 piste - Jos ohjelmasta oli järkevä alku ja aika loppunut kesken 1-5 pistettä (riippuen siitä mihin asti tehtävässä oli päässyt) - Täysin järjetön koodi joka ei ole Javaa (näitäkin oli muutamia) 0 p